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
;********************<