工控编程吧
标题:
35上位机VC MFC实现程序最顶端显示
[打印本页]
作者:
qq263946146
时间:
2015-11-27 21:44
标题:
35上位机VC MFC实现程序最顶端显示
(, 下载次数: 1)
上传
点击文件名下载附件
35上位机VC MFC实现程序最顶端显示
功能展示
有时候我们想让自己开发上位机程序显示在桌面的最顶端,以便保证用户及时且能够看到程序的提示信息,我们就得设计实现这样的功能,如何实现呢?我们这例程就实现了这功能,效果如图
要点提示
在实现我们设计的 上位机程序永远在桌面的最前面,就得全用SetWindowPos这个函数,此函数可以为窗口指定一个新的位置和状态:
BOOL SetWindowPos( const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags );
x,y,cx,四个参数为窗口所以设置的位置和大小;
pWndInsertAfter为指定窗口的Z顺序,我们就可以通过设置此参数为&wndTopMost,实现窗口最前显示效果;
nFlags窗口尺寸和定位的标志
实现功能
1.新建基于对话框的应用程序
2.在主窗口中添加虚函数PreTranslateMessage()窗口不可移动功能
BOOL CGkbc8Dlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_NCLBUTTONDOWN)
{
pMsg->message=WM_LBUTTONDOWN;
}
return CDialog::PreTranslateMessage(pMsg);
}
复制代码
3.在对话框初始化函数OnInitDialog()里添加MoveWindowToMosttop();//设置窗口为最顶端居中显示
void CGkbc8Dlg::MoveWindowToMosttop()
{
CRect rect;
GetWindowRect(rect);
int x = (GetSystemMetrics(SM_CXSCREEN)-rect.Width())/2;
int y= (GetSystemMetrics(SM_CYSCREEN)-rect.Height())/2;
SetWindowPos(&wndTopMost,x,y,rect.Width(),rect.Height(),SWP_NOREDRAW);
}
复制代码
我们来演示功能实现过程
[iqiyi]http://player.video.qiyi.com/8b186034ed87920f8c5d45ea8509c344/0/0/w_19rtae6i0l.swf-albumId=4941480409-tvId=4941480409-isPurchase=0-cnId=12[/iqiyi]
源码及视频下载
(仅在电脑可见)
(, 下载次数: 2)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4