怎么使用sendmessage來更改第三方軟體選單caption,SendMessage(Integer(Edit1.Text),WM_SETTEXT,255,Integer(PChar(Edit2.text)))好像不生效,謝謝
uj5u.com熱心網友回復:
沒有人,自己頂起uj5u.com熱心網友回復:

SendMessage(Integer(Edit1.Text),WM_SETTEXT,255,Integer(PChar(Edit2.text)))
這個第一個引數亮了,SendMessage不是這樣用的,第一個需要的是視窗句柄,你把Edit1.Text的Integer的地址傳過去搞飛機?
首先用FindWindow獲得第三方視窗的Handle
然后SendMessage(找到的Handle,WM_SetText來處理,而且你后面的引數也不對,WParam這個對于這個訊息來說,根本沒用,用0就行,最后一個引數應該是一個Buf地址,比如buf: array[0..255] of AnsiChar;然后Integer(@buf[0]),請看MSDN
uj5u.com熱心網友回復:
謝謝回復,我的edit.text里面是人為的輸入的真實句柄,整個呼叫語法肯定是沒有問題的。只是可以改變button的caption,對選單沒用而已。uj5u.com熱心網友回復:
選單文本的改變不像其他視窗,要先獲得選單的句柄,再改各個選單項的文本。有個api函式是可以取得某個表單的主選單句柄的。
uj5u.com熱心網友回復:
。。人為的輸入的,也不是Integer(Edit1.text)吧,而是Inttostr(Edit1.text)啊,你確定,你那樣能改?如果是真的,那我就默默的匿去吧,水太深,我趟不了
uj5u.com熱心網友回復:
用SetWindowTex:function SetWindowText(hWnd: HWND; lpString: PWideChar): BOOL; external user32 name 'SetWindowTextW';
uj5u.com熱心網友回復:
SetWindowText(N1.Handle,PWideChar(TntEdit1.Text));提示:[Error] Unit1.pas(55): Incompatible types: 'WideChar' and 'Char'
uj5u.com熱心網友回復:
選單有選單的API函式, sendmessage是沒有用的uj5u.com熱心網友回復:
setwindowlong轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/91676.html
下一篇:關于三層服務器程式測驗問題?
