2013-12-18 48 views
0

這可能是一個可笑的問題,但任何人都可以點我在正確的方向得到代表的消息here的數值,我看着在我在網上找到的Commctrl.h文件,但沒有人可以提供的值,顯然從審判我可以確定有些像右鍵是4294967291和左是4294967294Windows控件消息常數

編輯:

@Remy勒博,所以我子類的列表視圖的父母,然後抓住了WM_NOTIFY並且是的hwndFrom列表視圖和上移動鼠標到列表視圖然後右擊輸出到調試窗口:

4294967146 
4294967175 
4294967175 
4294967280 
4294967196 
4294967289 
4294967291 
4294967284 
4294967146 

從NMHDR結構的代碼項目,這是輸出代碼的Lua打印功能,所以我假設Lua正在轉換十進制/十六進制,所以我在這裏做一些嚴重錯誤?我從Visual Studio的試用版中獲得了一份Commctrl.h的良好副本,並接受了您的建議並獲得了我需要的代碼,所以謝謝。

+0

C++編寫的程序,其包括'commctrl.h'並打印出所有的值。將消息名稱粘貼到常量數組聲明中並循環。應該是5-10分鐘的工作。我想你需要這個,因爲你想把一些代碼翻譯成不同的語言。也許這會有助於告訴我們什麼是討論這個問題。 –

+0

'4294967291'是'0xFFFFFFFB'和'4294967294'是'0xFFFFFFFE',這兩者都不是一個有效的窗口消息ID,更不用說任何形式的左/右單擊消息。你從哪裏得到這些價值? –

+1

這裏似乎有些混淆,因爲你鏈接的信息是你發送的信息,而不是你收到的信息。 –

回答

2

所有這些消息都在Commctrl.h,您可以在任何文本編輯器查看定義。 ListView的消息是從LVM_FIRST,這是在相同的文件中定義爲0x1000(十進制4096)正偏移,例如:

#define LVM_FIRST    0x1000  // ListView messages 

#define LVM_GETBKCOLOR   (LVM_FIRST + 0) 
#define LVM_SETBKCOLOR   (LVM_FIRST + 1) 
#define LVM_GETIMAGELIST  (LVM_FIRST + 2) 
... 
#define LVM_GETNEXTITEMINDEX (LVM_FIRST + 211) 
1

如果你點擊這些消息鏈接之一,你會得到該消息的文檔。如果向下滾動,則會看到它們在commctrl.h中被定義。您可以查看本地副本以獲取實際值。

2

你可以嘗試安裝任何Python綁定的WinAPI的,例如this one

在源,數字是不容易看到,但你可以在你的Python解釋器導入他們,看看他們:

> python 
>>> import comctl 
>>> comctl.LVM_GETVIEW 
4239 

或者,如果你希望所有的人在一起,你可以編寫一個腳本:

import comctl 
for n in dir(comctl): 
    if n.startswith('LVM_'): # or whatever prefix you want 
     print n, '=', getattr(comctl, n) 
+0

我很喜歡那個腳本把他們吐出來。工作很好。 –