窗口样式

调整CreateWindow函数里窗口样式参数

效果一:无标题栏可改变大小

WS_POPUPWINDOW | WS_SIZEBOX

or

WS_POPUPWINDOW | WS_THICKFRAME

注:拦截WM_GETMINMAXINFO,禁止改变大小

lpMinMaxInfo->ptMinTrackSize.x = lpMinMaxInfo->ptMaxTrackSize.x = 300; 
lpMinMaxInfo->ptMinTrackSize.y = lpMinMaxInfo->ptMaxTrackSize.y = 200;

效果二:无标题栏无边框

WS_POPUPWINDOW or WS_POPUP

默认大小为0,0

注:也可以拦截WM_GETMINMAXINFO消息,使最大尺寸大于屏幕尺寸,从而实现全屏,但坐标系可能有偏差

WS_POPUP 与 WS_POPUPWINDOW的区别在于,前者无法在任务栏关闭窗口,而后者可以

效果三:全屏

WS_POPUPWINDOW | WS_MAXIMIZE

注:

需要用ShowWindow(hwnd,
SW_SHOW);

效果四:无法改变大小

WS_SYSMENU | WS_MINIMIZEBOX

or

WS_BORDER  (无法关闭)

效果五:子窗口

当申明为WS_CHILD时,以下事件肯定会发生

父窗口重绘时,子窗口也会可以到收到WM_PAINT的消息来重绘

而申明为一个WS_POPUP的子窗口就不会收到WM_PAINT消息。

父窗口的HDC和子窗口的HDC是重叠的,也就是,通过父窗口的HDC可以子窗口的区域里画图,并且可以画到非客户区。而申明为一个WS_POPUP窗口,父窗口的HDC和子窗口的HDC是互斥的。

窗口样式,码迷,mamicode.com

时间: 2024-10-13 11:29:31

窗口样式的相关文章

DotNetBar怎样控制窗口样式

DotNetBar怎样控制窗口样式 老帅  在C#中使用控件DevComponents.DotNetBar时,怎样创建一个美丽的窗口.并控制窗口样式呢? 1.新建一个DotNetBar窗口 2.使OFFICE窗口风格生效   假设执行时还是默认窗口风格,而不是offfice风格,可禁用系统的Glass主题就可以. 例如以下代码: this.EnableGlass = false; 3.禁止关闭窗口    private void FormTest_FormClosing(object sende

activity 窗口样式

activity 窗口样式 继承@android:style/Theme.Dialog , Window win = this.getWindow();win.getDecorView().setPadding(0, 0, 0, 0);WindowManager.LayoutParams lp = win.getAttributes();lp.width = WindowManager.LayoutParams.MATCH_PARENT;lp.height = WindowManager.Lay

重写alert弹出窗口样式

<script> window.alert = function(str)    {     var shield = document.createElement("DIV");     shield.id = "shield";     shield.style.position = "absolute";     shield.style.left = "0px";     shield.style.top

qt--setWindowFlags各种标志位的窗口样式

记录一下windowFlags各种标志位的样式和用法, 代码: 1 #include "qtwindowflagstest.h" 2 #include <QtWidgets/QApplication> 3 #include <QStatusBar> 4 #include <QObject> 5 6 int main(int argc, char *argv[]) 7 { 8 QApplication a(argc, argv); 9 QtWindow

MFC 窗口样式

Freme 类中 // CMainFrame construction/destruction CMainFrame::CMainFrame() { // TODO: add member initialization code here } CMainFrame::~CMainFrame() { } int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct)

JS编写类似弹出窗口样式显示层

JSp中增加div <!-- 提交变更申请 --> <div id="changeWindow" class="easyui-window" data-options="title:'提交变更申请',collapsible:false,minimizable:false,maximizable:false,modal:true" closed="true" style="width:820px;he

制作自定义样式的窗口

不使用windows自带的窗口样式,使用自定义的客户区, <Window xmlns:my="clr-namespace:MiniFileTransferClient.Presentation.WPF.UILogic.ShowPanels" x:Class="MiniFileTransferClient.Presentation.WPF.MiniFileTransferViewer" xmlns="http://schemas.microsoft.c

windows学习记录----hello world与窗口创建

1.第一个程序:Hello,world! 1 #include<windows.h> 2 3 int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow ) 4 { 5 MessageBox( NULL, TEXT("Hello,world!"), TEXT("MessageBox"), 0 ); 6 7 return 0;

QT开发(五)——窗口组件和窗口类型

QT开发(五)--窗口组件和窗口类型 一.窗口组件 图形用户界面由不同的窗口和窗口组件构成,<QtGui>头文件包含窗口组件,对应QT中的GUI模块,QT以组件对象的方式构建GUI. 组件的类型: A.容器类(父组件)用来包含其他的界面组件 B.功能类(子组件)用于实现特定的交互功能 QT中没有父组件的顶级组件叫窗口. QWidget是容器组件,继承自QObject类和QPaintDevice类,QObject类是所有支持QT对象模型的基类,QPaintDevice类是QT中所有可绘制组件的基