SendMessage 如何傳送中文 |
尚未結案
|
Ming Lin
一般會員 ![]() ![]() 發表:27 回覆:53 積分:21 註冊:2003-04-15 發送簡訊給我 |
|
yachanga
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:24 回覆:335 積分:296 註冊:2003-09-27 發送簡訊給我 |
|
jest0024
高階會員 ![]() ![]() ![]() ![]() 發表:11 回覆:310 積分:224 註冊:2002-11-24 發送簡訊給我 |
|
Ming Lin
一般會員 ![]() ![]() 發表:27 回覆:53 積分:21 註冊:2003-04-15 發送簡訊給我 |
|
jest0024
高階會員 ![]() ![]() ![]() ![]() 發表:11 回覆:310 積分:224 註冊:2002-11-24 發送簡訊給我 |
引言: 不好意思 請問WM_COPYDATA如何用呢 請給我個簡單的程式碼 (已收尋過)引述Win32 SDK HELP The WM_COPYDATA message is sent when an application passes data to another application. WM_COPYDATA wParam = (WPARAM) (HWND) hwnd; // handle of sending window lParam = (LPARAM) (PCOPYDATASTRUCT) pcds; // pointer to structure with data Parameters hwnd Identifies the window passing the data. pcds Points to a COPYDATASTRUCT structure that contains the data to be passed. Return Values If the receiving application processes this message, it should return TRUE; otherwise, it should return FALSE. 使用SendMessage傳送一個COPYDATASTRUCT的型態的資料. ABCD分開看的懂,連起來像鬼劃符~~!!! |
Ming Lin
一般會員 ![]() ![]() 發表:27 回覆:53 積分:21 註冊:2003-04-15 發送簡訊給我 |
|
jest0024
高階會員 ![]() ![]() ![]() ![]() 發表:11 回覆:310 積分:224 註冊:2002-11-24 發送簡訊給我 |
引言: 恩~不好意思呢 我查了一下WM_COPYDATA的用法 好像接收端也要是自己的程式 |
james2mac
一般會員 ![]() ![]() 發表:11 回覆:11 積分:4 註冊:2008-02-01 發送簡訊給我 |
|
ys168
初階會員 ![]() ![]() 發表:3 回覆:24 積分:25 註冊:2005-10-14 發送簡訊給我 |
[code cpp] 我用過大概如下: 是否可以? AnsiString st; void __fastcall TForm1::ApplicationEvents1Idle(TObject *Sender, bool &Done) { HWND ForeWindow = ::GetForegroundWindow(); if(ForeWindow != Handle) { LastEditHandle = ForeWindow; char str[255]; SendMessage(LastEditHandle, WM_GETTEXT, 255, (long)str); st =AnsiString("傳送到 - ") str; } } //--------------------------------------------------------------------------- void __fastcall TForm1::?MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { HWND hFocusWin; if(!IsWindow(LastEditHandle)) return; if( IsZoomed(LastEditHandle) ) ShowWindow(LastEditHandle, SW_SHOWMAXIMIZED); // 若是最大化, 就最大化顯示 else ShowWindow(LastEditHandle, SW_SHOWNORMAL); // 不然就直接顯示 SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, 0, SPIF_SENDCHANGE); BringWindowToTop(LastEditHandle); if( AttachThreadInput(GetCurrentThreadId(), GetWindowThreadProcessId(LastEditHandle, NULL), true) ) { BringWindowToTop(LastEditHandle); Application->ProcessMessages(); hFocusWin = GetFocus(); AttachThreadInput(GetCurrentThreadId(), GetWindowThreadProcessId(LastEditHandle, NULL), false); if( hFocusWin != NULL ) { int i; Byte ch; AnsiString str = //要傳送的AnsiString 相關字串; for( i = 1; i <= str.Length(); i ) // 注意: 是從 1 開始, 不是從 0 開始 { ch = Byte(str[i]); if( IsDBCSLeadByte(ch) ) // 若是雙位元的字, 就和下一個byte合成一個字 PostMessage(hFocusWin, WM_IME_CHAR, MAKEWORD(Byte(str[ i]), ch), 0); else // 不然就直接送出 PostMessage(hFocusWin, WM_IME_CHAR, WORD(ch), 0); } } else ShowMessage("GetFocus() failed!"); } else ShowMessage("AttachThreadInput() failed!!"); } //--------------------------------------------------------------------------- [/code]
------
yangshuh |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |