去掉窗体的边框,并且禁止拖动改变窗体大小
来源:互联网 发布:python迭代器 编辑:程序博客网 时间:2024/06/10 03:37
在Win32 SDK程序中,Create时创建一个一个窗体。欲去除其边框标题栏等属性,宜在WM_CREATE消息中写,或者在子窗体(例如按钮)的单击消息中以
SetWindowLong(hwnd, GWL_STYLE,GetWindowLong(hwnd, GWL_STYLE) &
(~(WS_CAPTION | WS_BORDER|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX )));
达到目的。
全部程序如下:
// ContactListDemo.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
//#include "windows.h"
#define ID_BUTTON 1;
HWND hButton;
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
TCHAR szAppName[]=TEXT("ContactListDemo");
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
int error;
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.style =CS_HREDRAW|CS_VREDRAW;
wndclass.lpfnWndProc =WndProc;
wndclass.cbClsExtra =0;
wndclass.cbWndExtra =0;
wndclass.hInstance =hInstance;
wndclass.hIcon =LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor =LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName =NULL;//szAppName;
wndclass.lpszClassName =szAppName;
if(!RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT("ContactListDemo"),
szAppName,MB_ICONERROR
);
return 0;
}
error=::GetLastError ();
hwnd=CreateWindow(szAppName,TEXT("ContactListDemo"),
WS_OVERLAPPEDWINDOW /*&(~(WS_CAPTION | WS_BORDER|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX ))*/,
CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,
NULL,NULL,hInstance,NULL);
error=::GetLastError ();
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam , LPARAM lParam)
{
switch(message)
{
case WM_CREATE:
//SetWindowLong(hwnd, GWL_STYLE,GetWindowLong(hwnd, GWL_STYLE) &
// (~(WS_CAPTION | WS_BORDER|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX )));
hButton=CreateWindow(TEXT("button"),TEXT("CHANGE WINDOW STYLE"),WS_CHILD | WS_VISIBLE,
/*CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,*/
20,20,200,50,
hwnd, (HMENU)1,
((LPCREATESTRUCT)lParam)->hInstance,NULL);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case 1:
SetWindowLong(hwnd, GWL_STYLE,GetWindowLong(hwnd, GWL_STYLE) &
(~(WS_CAPTION | WS_BORDER|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX )));
//MessageBox(hwnd,TEXT("Clicked Button"),TEXT("Test"),MB_OK);
break;
default:
break;
}
break;
}
return DefWindowProc(hwnd,message,wParam,lParam);
}
- 去掉窗体的边框,并且禁止拖动改变窗体大小
- 无边框窗体拖动和改变大小
- wpf改变默认的窗口边框大小,去掉边框,并且可以拖动大小
- 可拖动的无标题栏窗体,并且可以通过拉拽改变窗体大小。
- 实现无边框窗体的拖动及窗体大小变化
- 无边框窗体拖动大小
- 无边框窗体拖动大小
- 无边框窗体拖动大小
- c#禁止通过拖动,双击标题栏改变窗体大小
- 无边框窗体的拖动以及大小改变的实现方式
- java中 实现无标题无边框的窗体能够用鼠标拖动改变窗口大小
- c++builder如何通过鼠标拖动改变无边框窗体的大小(bsnone)
- MFC无边框的窗体实现用鼠标拖动窗体边缘实现窗体大小变化
- MFC无边框的窗体实现用鼠标拖动窗体边缘实现窗体大小变化
- MFC无边框的窗体实现用鼠标拖动窗体边缘实现窗体大小变化
- MFC无边框的窗体实现用鼠标拖动窗体边缘实现窗体大小变化
- MFC无边框的窗体实现用鼠标拖动窗体边缘实现窗体大小变化
- 无边框窗体拖动大小代码
- java笔试题目
- c++积累--函数
- jsp笔试题目
- 将BIRT整合到自己的Java项目中(二)
- ejb笔试题目
- 去掉窗体的边框,并且禁止拖动改变窗体大小
- j2ee笔试题目
- servlet笔试题目
- 常用bapi函数积累中........
- jboss下配置和部署EJB简介
- crash bug之 select
- jboss学习笔记
- 几种开源SIP协议栈对比
- (轉)浅谈数据库设计技巧