Win32汇编创建没有标题栏的窗体

这篇博客介绍了如何使用Win32汇编调用CreateWindowEx函数创建没有标题栏的窗体。通过设置特定的风格参数,如WS_POPUP和WS_EX_APPWINDOW,可以实现窗体无标题栏并且显示在任务栏上。同时,为了允许用户拖动无标题栏的窗口,文章提到了在处理WM_LBUTTONDOWN消息时发送WM_SYSCOMMAND消息,使用SC_DRAGMOVE标志。此外,处理WM_SYSCOMMAND消息中的SC_RESTORE标志,解决了窗口最小化后无法从任务栏还原的问题。
摘要由CSDN通过智能技术生成

  Win32汇编通过调用Windows 的API来创建窗体,在创建窗体时使用一个CreateWindowEx函数,通过传给这个函数的参数来确定窗口的样式。CreateWindowEx函数的用法是:

invoke  CreateWindowEx,dwExStyle,lpClassName, lpWindowName,dwStyle,\
        x,y,nWidth,nHeight,hWndParent,hMenu,hInstance,lpParam

  窗口的两个参数dwStyle和dwExStyle决定了窗口的外形和行为,dwStyle是从Win16开始就有的属性,这些属性的预定义值通常是以WS_开头dwStyle的具体样式参见Window Styles。dwExStyle是Win32中的扩展,它们是一些以WS_EX_开头的预定义值,定义了一些特殊的风格。dwExStyle的具体样式参见Extended Window Styles
  要创建没有标题栏的窗体只需要将窗体风格参数dwStyle设置成WS_POPUP就可以了,但由于没有了标题栏,此时的窗体是不会显示在Windows的任务栏上的。如果要将窗体显示在任务栏上,可以向窗体的扩展属性dwExStyle中添加扩展属性WS_EX_APPWINDOW,将窗体强制显示在任务栏上。
  由于窗体没有了标题栏,此时就无法通过点击标题栏来拖动窗口了。为了实现窗口移动,可以在处理窗口WM_LBUTTONDOWN消息中向系统发送WM_SYSCOMMAND消息并指定SC_DRAGMOVE标志,在一些低版本的编译器中没有定义该标志,引用该标志前应预先声明,该标志的值为0f012h

_ProcWnd  proc     uses ebx edi esi,hWnd,uMsg,wParam,lParam
          mov      eax,uMsg
;********************<
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值