国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Perform()與SendMessage()的不同

2019-11-17 05:40:18
字體:
來源:轉載
供稿:網友

  就像Windows發送消息給應用程序一樣,也可以有窗口與控件之間發送消息。C++ Builder提供了幾種在一個應用程序內部發送消息的方式:調用Perform()(這種方式不依靠于Windows API),以及調用SendMessage(),PostMessage() API函數

Perform()
VCL的Perform()方法適用于所有的TControl派生對象。Perform()可以向任何一個窗件或控件發送消息,只需要知道窗體或控件的實例。Perform()需要傳遞3個參數:消息標識符,wParam和lParam。
Perform()是這樣聲明的:
int __fastcall Perform(unsigned Msg, int WParam, int LParam);
要給一個窗件或控件發送一個消息,可以參照下面的代碼:
RetVal = ControlName->Perform(MessagID, wParam,lParam);
調用了Perform()后,它要等消息得到處理后才返回。Perform()把3個參數組裝成TMessage記錄,然后調用Dispatch()方法把消息傳遞給Windows的消息系統。

SendMessage()和PostMessage()
有的時候, 可能需要向一個窗口發送一個消息,而又不知道這個窗口的實例。例如:可能要給一個非C++ Builder的窗口發送一個消息,而只有這個窗口的句柄。幸運的是,Windows有兩個API函數可以實現這一點:SendMessage()和PostMessage().這兩個函數幾乎是一樣的,它們的區別是:
SendMessage()直接把一個消息發給窗口過程,等消息被處理后才返回。Postmessage()只是把消息發送到消息隊列,完成后即返回。

SendMessage()和PostMessage()是這樣聲明的:
LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
BOOL PostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);

hWnd 是接收消息的窗口的句柄
Msg 是消息標識符
wParam 是32位的特定附加信息。
lParam 是32位特定附加信息

上一篇:C++ 代碼優化

下一篇:c語言中static變量

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜章县| 松阳县| 沁阳市| 四川省| 资兴市| 嫩江县| 宣威市| 明水县| 海宁市| 重庆市| 涞水县| 江都市| 遂平县| 精河县| 江安县| 息烽县| 曲靖市| 清苑县| 佳木斯市| 普宁市| 灵川县| 郑州市| 澄迈县| 三河市| 祁连县| 凭祥市| 孝义市| 平阳县| 会昌县| 开江县| 桑植县| 芦山县| 长垣县| 闵行区| 满洲里市| 东至县| 诸城市| 荃湾区| 鄯善县| 尚志市| 寻乌县|