-
-
[求助]LB_GETITEMDATA取不到对应值
-
发表于: 2014-4-3 08:43 3330
-
include windows.inc
include kernel32.inc
include user32.inc
include Comctl32.inc
include shell32.inc
includelib kernel32.lib
includelib user32.lib
includelib Comctl32.lib
includelib shell32.lib
DlgProc PROTO :HWND,:UINT,:WPARAM,:LPARAM
.data
szItem1 db "顶目一",0
szItem2 db "项目二",0
message db "您选择了:%08d",0
.const
IDD_DIALOG1 equ 101
IDC_LST1 equ 1001
IDC_BTN1 equ 1002
;#########################################################################
.data?
hlist dd ?
hInstance dd ?
.386
.model flat, stdcall ;32 bit memory model
option casemap :none ;case sensitive
include 示列.inc
.code
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke InitCommonControls
invoke DialogBoxParam,hInstance,IDD_DIALOG1,NULL,addr DlgProc,NULL
invoke ExitProcess,0
;########################################################################
DlgProc proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
LOCAL @buffer[128]:byte
mov eax,uMsg
.if eax==WM_INITDIALOG
invoke GetDlgItem,hWin,IDC_LST1
mov hlist,eax
invoke SendMessage,hlist,LB_ADDSTRING,0,offset szItem1
invoke SendMessage,hlist,LB_ADDSTRING,0,offset szItem2
.elseif eax==WM_COMMAND
mov eax,wParam
.if ax==IDC_BTN1
invoke SendMessage,hlist,LB_GETCURSEL,0,0
invoke SendMessage,hlist,LB_GETITEMDATA,eax,0
;这里永远返回0
invoke wsprintf,addr @buffer,offset message,eax
invoke MessageBox,hWin,addr @buffer,0,MB_OK
.endif
.elseif eax==WM_CLOSE
invoke EndDialog,hWin,0
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
DlgProc endp
end start
invoke SendMessage,hlist,LB_GETITEMDATA,eax,0
;这里永远返回0 取不到对应的值,请大牛指点下,这是我编写的测试程序,列表框取引索值对应的32位仁值
include kernel32.inc
include user32.inc
include Comctl32.inc
include shell32.inc
includelib kernel32.lib
includelib user32.lib
includelib Comctl32.lib
includelib shell32.lib
DlgProc PROTO :HWND,:UINT,:WPARAM,:LPARAM
.data
szItem1 db "顶目一",0
szItem2 db "项目二",0
message db "您选择了:%08d",0
.const
IDD_DIALOG1 equ 101
IDC_LST1 equ 1001
IDC_BTN1 equ 1002
;#########################################################################
.data?
hlist dd ?
hInstance dd ?
.386
.model flat, stdcall ;32 bit memory model
option casemap :none ;case sensitive
include 示列.inc
.code
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke InitCommonControls
invoke DialogBoxParam,hInstance,IDD_DIALOG1,NULL,addr DlgProc,NULL
invoke ExitProcess,0
;########################################################################
DlgProc proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
LOCAL @buffer[128]:byte
mov eax,uMsg
.if eax==WM_INITDIALOG
invoke GetDlgItem,hWin,IDC_LST1
mov hlist,eax
invoke SendMessage,hlist,LB_ADDSTRING,0,offset szItem1
invoke SendMessage,hlist,LB_ADDSTRING,0,offset szItem2
.elseif eax==WM_COMMAND
mov eax,wParam
.if ax==IDC_BTN1
invoke SendMessage,hlist,LB_GETCURSEL,0,0
invoke SendMessage,hlist,LB_GETITEMDATA,eax,0
;这里永远返回0
invoke wsprintf,addr @buffer,offset message,eax
invoke MessageBox,hWin,addr @buffer,0,MB_OK
.endif
.elseif eax==WM_CLOSE
invoke EndDialog,hWin,0
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
DlgProc endp
end start
invoke SendMessage,hlist,LB_GETITEMDATA,eax,0
;这里永远返回0 取不到对应的值,请大牛指点下,这是我编写的测试程序,列表框取引索值对应的32位仁值
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
他的文章
看原图
赞赏
雪币:
留言: