Win32汇编最简ComboBox Demo

这篇博客介绍了如何使用MASM32汇编语言编写一个简单的Windows对话框程序,对话框中包含一个组合框,并展示了如何初始化组合框,向其添加字符串并设置选中项。代码示例详细展示了从定义资源到处理消息的过程。
摘要由CSDN通过智能技术生成

代码; 

#include <resource.h>

#define	DLG_MAIN		1
#define IDC_TITLETEXT	101

DLG_MAIN DIALOG 193, 180, 130, 100
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
CAPTION "对话框子窗口控制示例"
FONT 9, "宋体"
{
 COMBOBOX IDC_TITLETEXT, 10, 20, 105, 70, CBS_DROPDOWNLIST | WS_TABSTOP
}
.386
.model flat, stdcall
option casemap :none
 
include G:\masm32\include\windows.inc
include G:\masm32\include\user32.inc
include G:\masm32\include\kernel32.inc
include G:\masm32\include\gdi32.inc
includelib G:\masm32\lib\user32.lib
includelib G:\masm32\lib\kernel32.lib
includelib G:\masm32\lib\gdi32.lib
 
DLG_MAIN	equ	1
IDC_TITLETEXT	equ	101
 
		.data? 
hInstance	dd	? 
		.const
szText1		db	'组合框文本1',0
szText2		db	'组合框文本2',0
szText3		db	'组合框文本3',0
szText4		db	'组合框文本4',0
szText5		db	'组合框文本5',0
 
		.code
 
_ProcDlgMain	proc	uses ebx edi esi hWnd,wMsg,wParam,lParam
 
		mov	eax,wMsg
		.if	eax == WM_CLOSE
			invoke	EndDialog,hWnd,NULL
		.elseif	eax == WM_INITDIALOG
 
                    ; 初始化组合框
		    invoke SendDlgItemMessage,hWnd,IDC_TITLETEXT,CB_ADDSTRING,0,addr szText1
		    invoke SendDlgItemMessage,hWnd,IDC_TITLETEXT,CB_ADDSTRING,0,addr szText2
		    invoke SendDlgItemMessage,hWnd,IDC_TITLETEXT,CB_ADDSTRING,0,addr szText3
		    invoke SendDlgItemMessage,hWnd,IDC_TITLETEXT,CB_ADDSTRING,0,addr szText4
		    invoke SendDlgItemMessage,hWnd,IDC_TITLETEXT,CB_ADDSTRING,0,addr szText5
		    invoke SendDlgItemMessage,hWnd,IDC_TITLETEXT,CB_SETCURSEL,0,0
 
		.elseif	eax == WM_COMMAND
		.else
			mov	eax,FALSE
			ret
		.endif
		mov	eax,TRUE
		ret
 
_ProcDlgMain	endp
 
start:
		invoke	GetModuleHandle,NULL
		mov	hInstance,eax
		invoke	DialogBoxParam,hInstance,DLG_MAIN,NULL,offset _ProcDlgMain,NULL
		invoke	ExitProcess,NULL
 
		end	start

构建如下;

运行;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值