星期三, 6月 18, 2008

剪貼簿 真機歪

不知道有沒有人遇過這樣機歪的事
當你使用簡貼簿時拿書上範例一用中文怎樣弄都是亂碼?

上網找了一下結果發現是編碼簿的問題,當你的輸入法都為中文系統時又沒啥問題
可是你用英文輸入法然後使用減貼簿的功能,貼出的中文字就是亂碼,這問題當然和編碼有關,網路上有人說調整輸入法就好了...,看到這樣我覺得根本就是整人吧。
有這樣不實際的方法嗎?那寫程式寫成這樣麻煩幹麻

一般來講書上的範例只會是下面這樣

TChar szTemp[512];
GetWindowText(m_hAppWnd,szTemp,512);

HGLOBAL hGlobal = GlobalAlloc (GHND | GMEM_SHARE, ( (lstrlen (szTemp) + 1)* sizeof (TChar)) );
LPTSTR pGlobal = (LPTSTR)GlobalLock (hGlobal) ;
lstrcpy (pGlobal, szTemp) ;
OpenClipboard (m_hAppWnd) ;
EmptyClipboard () ;
SetClipboardData (CF_TCHAR, hGlobal) ;

GlobalUnlock (hGlobal) ;
CloseClipboard () ;



這時你就會出現,我一開始遇到的問題了。
最後發現他是要這樣用


TChar szTemp[512];
GetWindowText(m_hAppWnd,szTemp,512);

HGLOBAL hGlobal = GlobalAlloc (GHND | GMEM_SHARE, ( (lstrlen (szTemp) + 1)* sizeof (TChar)) );
LPTSTR pGlobal = (LPTSTR)GlobalLock (hGlobal) ;
lstrcpy (pGlobal, szTemp) ;
OpenClipboard (m_hAppWnd) ;
EmptyClipboard () ;
SetClipboardData (CF_TCHAR, hGlobal) ;
SetClipboardData(CF_LOCALE, hGlobal);
GlobalUnlock (hGlobal) ;
CloseClipboard () ;


好杯中文字遇到的問題就是這樣多 -_-

沒有留言: