浙江福彩3d走势图
我們來自五湖四海,不為別的,只因有共同的愛好,為中國互聯網發展出一分力!

Perform()與SendMessage()的不同

2013年04月28日03:40 閱讀: 15345 次

      就像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位特定附加信息

分享到: 更多
藍客門戶
©2001-2019 中國藍客聯盟 版權所有.
關于藍客聯盟歷史宗旨章程技術服務聯系我們藍客社區

浙江福彩3d走势图 天津时时彩官网直播 广东36选7好彩3开奖详情 网络棋牌游戏输赢原理 腾讯分分彩免费计划app 羽毛球英语 新时时彩走势图500 原创店铺赚钱吗 河南快三推荐预测 股票分析师工资高吗 广西11选5最高多少期