欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > win32汇编环境,对话框中静态控件static的常用功能

win32汇编环境,对话框中静态控件static的常用功能

2025/2/6 7:11:49 来源:https://blog.csdn.net/iltokyo/article/details/144944008  浏览:    关键词:win32汇编环境,对话框中静态控件static的常用功能

;运行效果

;win32汇编环境,对话框中静态控件static的常用功能
;静态控件static可以用来显示文本、ICO图标、bmp位图
;直接抄进RadAsm可编译运行。
;下面为asm文件
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386 
.model flat,stdcall 
option casemap:none 

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include    windows.inc 
include    user32.inc 
include    kernel32.inc 
includelib user32.lib 
includelib kernel32.lib 

; 自定义函数声明
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DlgProc proto :DWORD,:DWORD,:DWORD,:DWORD   ;对话框窗口函数

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.data 
DlgName     db "MyDialog",0 
szCheshi    db "我是static控件里的文本",0 

.data? 
hInstance  dd    ?

hIco       dd    ?    ;图标句柄
hBmp       dd    ?    ;图像句柄 
.const 
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Equ 等值定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
IDSTATIC01   equ 21
IDSTATIC02   equ 22
IDSTATIC03   equ 23

IDC_ICO      equ 31
IDC_BMP      equ 32

ID_BUTTON01  equ 41 
ID_BUTTON02  equ 42 
ID_BUTTON03  equ 43 
         
           
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code 
start: 
    invoke GetModuleHandle, NULL 
    mov    hInstance,eax 
    invoke DialogBoxParam, hInstance, ADDR DlgName,NULL, addr DlgProc, NULL 
    invoke ExitProcess,eax 

DlgProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM 

        .if     uMsg == WM_INITDIALOG 
                invoke    LoadIcon,hInstance,IDSTATIC02    ;加载ico图标
                mov hIco,eax
            invoke    SendMessage,hWnd,WM_SETICON,ICON_BIG,eax   ;设置标题栏左边的图标
            
                invoke  LoadBitmap,hInstance,IDSTATIC03  ;加载bmp图像    
                mov     hBmp,eax               
        .elseif uMsg==WM_COMMAND                         
                mov eax,wParam                         
                .if eax == ID_BUTTON01                            
                        invoke  SendDlgItemMessage,hWnd,IDSTATIC01,WM_SETTEXT,0,addr szCheshi            ;设置文本    
                .elseif eax == ID_BUTTON02                          
                        invoke  SendDlgItemMessage,hWnd,IDC_ICO,STM_SETICON,hIco,0                       ;设置图标
                .elseif eax == ID_BUTTON03 
                        invoke  SendDlgItemMessage,hWnd,IDC_BMP,STM_SETIMAGE,IMAGE_BITMAP,hBmp           ;设置图像                  
                .endif
        .elseif uMsg == WM_CLOSE 
                invoke EndDialog, hWnd,NULL 
        .else 
                mov eax,FALSE 
                ret 
        .endif 
                mov eax,TRUE 
        ret 
DlgProc endp 

end start 
 

;下面为rc文件内容
#include "resource.h"                   //提示缺少该文件,可以在资源里下载
/

#define IDSTATIC01          21
#define IDSTATIC02          22
#define IDSTATIC03          23

#define IDC_ICO             31
#define IDC_BMP             32 
 

#define ID_BUTTON01         41
#define ID_BUTTON02         42
#define ID_BUTTON03         43
/
IDSTATIC02     ICON     "Main.ico"
IDSTATIC03     BITMAP   "a.bmp"
/
//定义对话框
MyDialog DIALOG 10, 10, 150, 240 
STYLE  DS_CENTER | WS_CAPTION | WS_MINIMIZEBOX | 
WS_SYSMENU | WS_VISIBLE | WS_OVERLAPPED | DS_MODALFRAME | DS_3DLOOK 
CAPTION "对话框中静态控件static的常用操作" 

BEGIN 
     CONTROL "", IDSTATIC01, "Static", WS_CHILD | WS_VISIBLE, 10, 10, 100, 20 
     CONTROL "", IDC_ICO, "Static", SS_ICON | WS_CHILD | WS_VISIBLE, 10, 30, 40, 20 
     CONTROL "", IDC_BMP, "Static", SS_BITMAP | WS_CHILD | WS_VISIBLE, 10, 60, 40, 40 

     PUSHBUTTON      "点我显示static控件里的文本", ID_BUTTON01,  25,160,100,13 
     PUSHBUTTON      "点我显示static控件里的图标", ID_BUTTON02,  25,180,100,13 
     PUSHBUTTON      "点我显示static控件里的图像", ID_BUTTON03,  25,200,100,13 
     
     CONTROL "", -1, "Static", SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE, 25, 228, 65, 1   //可用来加沉底实线,好看点,也可以用于隔离控件或菜单
     CONTROL "CSDN出品", -1, "Static", WS_CHILD | WS_DISABLED, 90, 225, 100, 20
END 


 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com