VC++创建一个窗口,要窗口无边框,透明,可拖动,属性栏不显示该怎么做?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC++创建一个窗口,要窗口无边框,透明,可拖动,属性栏不显示该怎么做?相关的知识,希望对你有一定的参考价值。

可以想象是想做一个悬浮在桌面的东西,可以响应用户操作。资料不好找,希望有大神帮忙给些资料,谢谢~~

HWND CreateWindow(   LPCTSTR lpClassName,   LPCTSTR lpWindowName,   DWORD dwStyle,   int x,   int y,   int nWidth,   int nHeight,   HWND hWndParent,   HMENU hMenu,   HANDLE hlnstance,   LPVOID lpParam);

dwStyle指定创建窗口的风格。该参数可以是下列窗口风格的组合
S_BORDER:创建一个单边框的窗口。   
WS_CAPTION:创建一个有标题框的窗口(包括WS_BODER风格)。   
WS_CHILD:创建一个子窗口。这个风格不能与WS_POPUP风格合用。   WS_CHLDWINDOW:与WS_CHILD相同。   
WS_CLIPCHILDREN:当在父窗口内绘图时,排除子窗口区域。在创建父窗口时使用这个风格。 WS_CLlPBLINGS;排除子窗口之间的相对区域,也就是,当一个特定的窗口接收到WM_PAINT消息时,WS_CLIPSIBLINGS 风格将所有层叠窗口排除在绘图之外,只重绘指定的子窗口。如果未指定WS_CLIPSIBLINGS风格,并且子窗口是层叠的,则在重绘子窗口的客户区时,就会重绘邻近的子窗口。   
WS_DISABLED:创建一个初始状态为禁止的子窗口。一个禁止状态的窗口不能接受来自用户的输入信息。   
WS_DLGFRAME:创建一个带对话框边框风格的窗口。这种风格的窗口不能带标题条。   WS_GROUP:指定一组控制的第一个控制。这个控制组由第一个控制和随后定义的控制组成,自第二个控制开始每个控制,具有WS_GROUP风格,每个组的第一个控制带有WS_TABSTOP风格,从而使用户可以在组间移动。用户随后可以使用光标在组内的控制间改变键盘焦点。   WS_HSCROLL:创建一个有水平滚动条的窗口。   
WS_ICONIC:创建一个初始状态为最小化状态的窗口。与WS_MINIMIZE风格相同。   WS_MAXIMIZE:创建一个初始状态为最大化状态的窗口。   
WS_MAXIMIZEBOX:创建一个具有最大化按钮的窗口。该风格不能与WS_EX_CONTEXTHELP风格同时出现,同时必须指定WS_SYSMENU风格。   
WS_OVERLAPPED:产生一个层叠的窗口。一个层叠的窗口有一个标题条和一个边框。与WS_TILED风格相同。   
WS_OVERLAPPEDWINDOW:创建一个具有WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU WS_THICKFRAME,WS_MINIMIZEBOX,WS_MAXIMIZEBOX风格的层叠窗口,与WS_TILEDWINDOW风格相同。   
WS_POPUP;创建一个弹出式窗口。该风格不能与WS_CHLD风格同时使用。   WS_POPUPWINDOW:创建一个具有WS_BORDER,WS_POPUP,WS_SYSMENU风格的窗口,WS_CAPTION和WS_POPUPWINDOW必须同时设定才能使窗口某单可见。   WS_SIZEBOX:创建一个可调边框的窗口,与WS_THICKFRAME风格相同。   WS_SYSMENU:创建一个在标题条上带有窗口菜单的窗口,必须同时设定WS_CAPTION风格。   
WS_TABSTOP:创建一个控制,这个控制在用户按下Tab键时可以获得键盘焦点。按下Tab键后使键盘焦点转移到下一具有WS_TABSTOP风格的控制。   
WS_THICKFRAME:创建一个具有可调边框的窗口,与WS_SIZEBOX风格相同。   WS_TILED:产生一个层叠的窗口。一个层叠的窗口有一个标题和一个边框。与WS_OVERLAPPED风格相同。   
WS_TILEDWINDOW:创建一个具有WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU, WS_THICKFRAME,WS_MINIMIZEBOX,WS_MAXMIZEBOX风格的层叠窗口。与WS_OVERLAPPEDWINDOW风格相同。   
WS_VISIBLE创建一个初始状态为可见的窗口。   
WS_VSCROLL:创建一个有垂直滚动条的窗口。
参考技术A WordCheck2 由gif动画图片做成的窗体(只做为一个简单例程-临时)

http://114.245.137.196/src/WordCheck2.src.rar

vc6代码,可参考
参考技术B 无边框是可以用属性设,透明也是两行代码的事,这些都是窗口的风格决定 的,无边框一般都是没标题栏,这样要自己写代码来实现拖动,,根本不用任何资料,MSDN就行。。。 参考技术C 昏,一般的程序按F11就会全频,至于你的情况,可以自己选择工具栏的,在窗口或命令里选择。
希望对你有帮助!
参考技术D 你看下这个
http://www.vckbase.com/document/viewdoc/?id=1745

WPF 创建无边框的圆角窗口

第一步:去掉窗体默认样式的边框

首先将窗体的背景设为透明,将允许透明的属性设置为True,即:Background="Transparent"  AllowsTransparency="True",将Window的WindowStyle属性设置为None,即WindowStyle="None" (当AllowsTransparency="True"时,WindowStyle.None 是 WindowStyle 的唯一有效值)。

注:这几个属性必须按要求设置,否则会影响最终的效果。

第二步:设置窗体的圆角效果

这个设置就相对简单,只需在<Grid></Grid>标签下通过border设置即可实现,具体的设置代码如下:
<Border BorderThickness="1" BorderBrush="Gray"  CornerRadius="15,15,15,15"  />
注:此时的窗体背景透明,如果要为窗体设置背景色,那么要在border标签下添加Background属性即可。
 
通过以上两步即可实现圆角窗口的实现^.^
 
附加:如果需要窗体可以随意拖动,需要为窗体添加MouseLeftButtonDown事件来实现,MouseLeftButtonDown的实现也相当的简单,如下:
public void DragWindow(object sender, MouseButtonEventArgs args) {
this.DragMove();
}
 
转自:http://blog.csdn.net/nncrystal/article/details/38561095

以上是关于VC++创建一个窗口,要窗口无边框,透明,可拖动,属性栏不显示该怎么做?的主要内容,如果未能解决你的问题,请参考以下文章

Tkinter:鼠标拖动一个没有边框的窗口,例如。覆盖直接(1)

AS3.0实现点击文字显示可拖动式边框

如何使窗口可拖动(C# Winforms)?

猎豹MFC--拖动无边框窗体

从透明无边框窗口单击桌面图标和文档项[关闭]

C#移动无边框的窗体怎么写。