請教高手,我獲取toolbar的句柄后,使用OpenProcess,之后SendMessage(ipTray, TB_MSG.TB_BUTTONCOUNT, 0, 0)獲取按鈕個數,然后回圈SendMessage(ipTray, TB_MSG.TB_GETBUTTON, i, lAddress.ToInt32());獲取按鈕資訊,找到對應的程式的僵尸圖示,GetWindowThreadProcessId(trayData.hwnd, ref dwProcessID); 判斷所得的dwProcessID是否為0,是的話則發送洗掉按鈕訊息,PostMessage(ipTray, TB_MSG.TB_DELETEBUTTON, i, lAddress.ToInt32());
我是在每次程式啟動時就是在main里呼叫,這里有個問題,假如點擊工具列向上的箭頭,把toobar里面的圖示手動滑鼠移過消除后,啟動程式,這個時候圖示就會消失。
難道是正在PostMessage TB_DELETEBUTTON訊息的時候,toobar也還沒有洗掉前一次TB_DELETEBUTTON訊息,所以就有兩次TB_DELETEBUTTON在佇列里面,導致圖示消失嗎?如果是,怎么解決呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/123090.html
標籤:Windows客戶端使用
