MFC无闪烁隐藏窗口】的更多相关文章

今天需要用到将窗口的程序隐藏,但是如果在OnInitDialog()中,直接写: ShowWindow(SW_HIDE); 是无效的,因为这本身就是个初始化窗口函数.也就是说,窗口在并没有显示出来的时候,就会调用这个函数,因此,没有窗口句柄,所以不能隐藏 今天在网上找了个方法可以解决这个问题: ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);//从任务栏中去掉. SetWindowPos(&wndTop,0,0,0,0,NULL); 这个方法好像采…
MFC中无边框窗口的拖动 void CXXXXDialog::OnLButtonDown(UINT nFlags, CPoint point) { PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y)); }   要记得添加消息映射,不然这个代码是不起作用的.   转: 移动标准窗口是通过用鼠标单击窗口标题条来实现的,但对于没有标题条的窗口,就需要用鼠标单击窗口标题条以外区域来移动窗口.有两种方法可以达到这一目…
http://hantayi.blog.51cto.com/1100843/383578 引言 当我们需要在用户区显示一些图形时,先把图形在客户区画上,虽然已经画好但此时我们还无法看到,还要通过 程序主动地刷新用户区,强制Windows发送一条WM_PAINT消息,这将引发视类OnDraw函数简单地将所有的图形对象重画,这样才完成了图形的 显示工作,但在刷新的同时会引起较明显的闪烁尤其是当画面面积较大.图像元素过多时尤为明显甚至达到无法正常工作的地步.因此,我们需要做相应的处理.本 文介绍了采用…
转自:http://blog.csdn.net/scorpio_tiger/article/details/2888719 http://www.pconline.com.cn/pcedu/empolder/gj/vc/0507/653941.html 1.显示的图形为什么会闪烁 我们的绘图过程大多放在OnDraw或者OnPaint函数中,OnDraw在进行屏幕显示时是由OnPaint进行调用的.当窗口由于任何原因需要重绘时,总是先用背景色将显示区清除,然后才调用OnPaint,而背景色往往与绘…
  双缓冲绘图在Qt4中,所有的窗口部件默认都使用双缓冲进行绘图.使用双缓冲,可以减轻绘制的闪烁感.在有些情况下,用户要关闭双缓冲,自己管理绘图.下面的语句设置了窗口部件的Qt::WA_PaintOnScreen属性 ,就关闭了窗口部件的双缓冲.mywidget->setAttribute(Qt::WA_PaintOnScreen); 由于Qt4不再提供异或笔,组合模式QPainter::CompostionMode_Xor()并不是异或笔,Qt4只提供了QRubberBand实现矩形和直线的绘…
MFC应用程序中处理消息的顺序 1.AfxWndProc()      该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndProc()  该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数 3.WindowProc()      该函数负责发送消息到OnWndMsg()函数,如果未被处理,则调用DefWindowProc()函数 4.OnWndMsg()        该函…
MFC中的主窗口修改标题 如何去掉“无标题”1.在主程序中的InitInstance(): m_pMainWnd->SetWindowText("你要显示的东西如果不想显示置空就行") 2.在框架类的PreCreateWindow函数里修改风格 BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { cs.style &= ~FWS_ADDTOTITLE; //去除标题条中的文档名 return CFrameWnd…
在Delphi里我记得是使用TThread.Synchronize(TThreadMethod),原理是利用了一个隐藏窗口来处理. 在QT Debug模式一下,碰到了同样的问题,显示错误: cannot send events to objects owned by a different thread 解决方案是使用信号槽,就是在线程里不断的发信号,UI线程的槽函数不断的接受信号并做处理: So as a solution I would propose the following: Defi…
使用AE的同行经常会遇到这样的问题,图层刷新.目前常用的有以下几种方法: 1.完全刷新 MapControl.Refresh(); 2.局部刷新 MapControl.Refresh(esriViewDrawPhase.esriViewAll,layerOrElement,envelope) 或者其他的如: IActiveView activeView = MapControl.Map as IActiveView; activeView.PartialRefresh(ESRI.ArcGIS.C…
由于工作和学习需要,经常要开一个虚拟机开测试和开发,虚拟机我选择Oracle公司的VirtualBox(用了几年了,感觉不错的一款产品),经常开着这个窗口感觉有些浪费资源,这样隐藏窗口就在需求了. 将VirtualBox里安装的虚拟机在后台运行方法(在状态栏隐藏窗口) 开始=>运行=>cmd进入DOS窗口 d: cd D:\Program Files\VirtualBox D:\Program Files\VirtualBox> .\VBoxManage.exe startvm mast…
在Form Load中设置showInTaskBar =false   或 隐藏窗口 this.Hide() 会导致注册的全局快捷键无效.  反正是其中一个,有点记不清了. 在Form Shown中showInTaskBar =false 或者 this.Hide();…
实现原理: 实现这个功能的原理步骤如下: 1.判断窗体程序是否靠近桌面边缘: 2.获取桌面屏幕大小与窗体程序大小: 3.把窗体程序显示在桌面以外隐藏起来,预留部分窗体方便用户拉出程序: 4.判断鼠标是否在窗体程序上,在就靠边显示整个窗体程序,不在就隐藏显示,并调为半透明转态.  程序部分: int SH; int SW; int self_SH; int self_SW; ;//窗口初始化位置标志位,防止隐藏窗口后定时器重新跑窗口函数再次在初始化位置打开 private void Form1_L…
原文:C# Winform在win10里弹出无焦点的窗口 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/wangmy1988/article/details/78617139 有个项目需要在右下角弹出广告窗口,但是又不能影响用户的使用,窗口不能有焦点. 在网上搜了一堆,都是以下的代码,在form中添加一段样式. protected override CreateParams CreateParams { get { const int WS_E…
之前想弄个像QQ旋风那样的悬浮窗口,就研究了下怎么让窗口不显示在任务栏中,方法其实很简单就是将窗口的扩张属性设置成WS_EX_TOOLWINDOW,MSDN中对该属性有详细介绍,代码如下: ::SetWindowLong(m_hWnd, GWL_EXSTYLE, WS_EX_TOOLWINDOW ); 但是这样一来窗口的其他的扩展属性不管有没有,肯定是全没有,因此可以用下面的方法保留窗口的其他扩展属性: DWORD dwExStyle = ::GetWindowLong(m_hWnd, GWL_…
只需要将相应代码复制即可. 代码如下: #include <iostream> #include <windows.h> int main() { HWND hDos; //声明窗口句柄变量 hDos=GetForegroundWindow(); //得到窗口句柄 ShowWindow(hDos,SW_HIDE); //隐藏窗口 //中间代码 ShowWindow(hDos,SW_SHOW);//显示窗口 return 0; }…
针对mac平台的app let willQuitApp = false; // 控制退出方式 mainWindow.on('close', (e) => { if (willQuitApp) { mainWindow = null; printWindow = null; // 其他窗口也要会回收 } else { // mac平台,左上角关闭窗口 = 隐藏窗口 e.preventDefault(); mainWindow.hide(); } }); // Quit when all windo…
WPF中全屏窗口,会自动隐藏任务栏. 那非全屏窗口如何隐藏任务栏?甚至有没有一种场景,隐藏任务后自定义一套系统任务栏来显示? 以下会分阶段讲述一些概念 1. 主屏任务栏 任务栏,其实也是一个窗口,主屏的任务栏名称是"Shell_TrayWnd". 所以可以通过名称查找窗口,然后对窗口进行显示.隐藏操作. 以下是主屏幕任务栏的控制操作: 1 public static class ScreenTaskBar 2 { 3 private const int SwHide = 0; //隐藏…
实现原理: 步骤如下: 1.判断窗体程序是否靠近桌面边缘: 2.获取桌面屏幕大小与窗体程序大小: 3.把窗体程序显示在桌面以外隐藏起来,预留部分窗体方便用户拉出程序: 4.判断鼠标是否在窗体程序上,在就靠边显示整个窗体程序,不在就隐藏显示,并调为半透明转态. 代码部分: int SH; int SW; int self_SH; int self_SW; int star_win_flag = 1;//窗口初始化位置标志位,防止隐藏窗口后定时器重新跑窗口函数再次在初始化位置打开 private v…
//设置鼠标长时间无操作计时器 private System.Timers.Timer MouseTimerTick = new System.Timers.Timer(10000); private void Window_Activated(object sender, EventArgs e) { this.Dispatcher.Invoke(new Action(() => { //显示 })); MouseTimerTick.Stop(); } private void Window_…
void CMainFrame::FullScreen(){    m_wndRibbonBar.ShowWindow(SW_HIDE);//隐藏工具栏         m_wndStatusBar.ShowWindow(SW_HIDE);//隐藏状态栏 m_menuMainWnd = GetMenu();    //隐藏菜单栏              SetMenu(NULL); // 保存以前的位置信息              GetWindowRect(&m_FullScreenRec…
利用MFC开发用户界面往往需要需要根据要求进行界面美化,界面的美化包括很多内容,比如说界面各功能模块空间布局,控件位置选择,各功能模块区域的字体.背景颜色选择.添加位图,标题栏.菜单栏.状态栏等的重绘等等.总的来说,界面美化包括客户区和非客户区,本文主要结合本人的第一个MFC软件界面开发项目的经验教训,简要介绍MFC单文档应用程序界面非客户区的重绘,主要包括标题栏和菜单栏. 重绘标题栏和菜单栏可以从以下几方面考虑:1. 自行绘制的标题栏和菜单栏覆盖默认的标题栏和菜单栏:2.相应的控件(最大.最小…
转自https://blog.csdn.net/niusiqiang/article/details/43116153 虽然启用了双缓冲,但是仍然会出闪屏的情况,这是由于OpenGL自己有刷新背景的函数glClear,故而应禁止Windows刷新窗口背景.否则,当窗口需要重画时,Windows会自动先发送WM_ERASEBKGND,而缺省的处理函数使用白色的背景刷.当OpenGL使用的背景颜色不是白色时,作图时有一帧白色的闪烁.这种现象在做动画时特别明显. 因此,网上所说的配置步骤还少了一部,应…
虽然MFC已经落伍好多年,而且用来做界面非常的不好用...但是我既不会C#也不会QT,又需要使用OpenGL,就只能将就用了...   一.首先介绍Windows图像程序设计中几个重要的概念:   GDI(Graphics Device Interface,图形设备接口):这是Windows API的一个库.当Windows应用程序需要显示点.线.图像.文字等内容,在显示器或打印输入这些内容时,就需要用到GDI.Windows应用程序不能直接操作系统的硬件(比如显卡),GDI就为应用程序提供了相…
有两种方法: (1) Splitter:比较老的方法 (2) SplitContainer:比较新的方法 最终界面如下: 方法一:使用Splitter实现 (1) 在窗口中添加一个Panel控件,即Panel1 将其Dock属性设为Right,这样Panel1就停靠在了窗口最右侧: (2) 在窗口中添加一个Splitter控件,即Splitter1 将其Dock属性设为Right,这样Splitter1就停靠在了Panel1的左边缘: 将其Size属性中的X设为1,这样Splitter1几乎不可…
无边框窗体如何实现用鼠标拖动窗体边缘实现窗体大小变动呢?下面介绍一种方法,通过以下几个步骤即可实现: 1.实现WM_NCHITTEST消息,实现四条边框的模拟 2.实现WM_NCLBUTTONDOWN,发送窗体拖曳变化的消息 具体阐述如下: 1.实现WM_NCHITTEST消息,实现四条边框的模拟 参考代码如下: LRESULT CUserForm::OnNcHitTest(CPoint point) { // TODO: 在此添加消息处理程序代码和/或调用默认值 CRect rect; Get…
1. [图片] htmlui.jpg ​2. [代码]下面源码复制到快手(WWW.AAU.CN)中运行即可     import win.ui;/*DSG{{*/var winform = ..win.form( bottom=399;text="HTMLayout - 无边框窗口";border="none";right=599 )winform.add(  )/*}}*/ import win.util.round;win.util.round(winform,…
1)窗口去除边框 在组件属性中FormBorderStyle设为None 2)窗口随着鼠标移动而动 添加引用using System.Runtime.InteropServices; 在初始化控件{InitializeComponent();}代码后添加 [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("user32.dll")] public stat…
说明 演示环境: Vs2015 + MFC 基于对话框程序 效果图 方法1 注意: 此方法存在缺陷: 无法响应LButtonUp消息 添加消息处理函数 函数代码 void CMFCApplication1Dlg::OnLButtonDown( UINT nFlags , CPoint point ) { PostMessage( WM_NCLBUTTONDOWN , HTCAPTION , MAKELPARAM( point.x , point.y ) ); CDialogEx::OnLButt…
这个问题实在八月份逛csdn论坛的时候偶然遇到的,当时比较好奇楼主为啥要隐藏关闭按钮,就顺口问了下,结果楼主已经弃楼,未给出原因,猜着可能是为了做自定义页面美化,无法改变按纽外观之类的,后来琢磨了下,觉得修改窗口风格比较简单,这里使用的是GetWindowLong与 SetWindowLong两个API. Function onGUIInit   System::Call 'user32::GetWindowLong(i$hwndparent,i -16)i.r0'       intop $1…
问题为:背景界面是一个OpenGL窗口(对话框),在其上弹出一个OpenGL窗口(模态对话框)时, 1.上方的OpenGL窗口能响应鼠标操作等并刷新: 2.当移动或放大缩小上方的OpenGL窗口时,其中的模型就不会响应鼠标操作. 因为之前的程序是单对话框的,所以放大.移动等没有问题,现在变成多OpenGL窗口显示就出现问题了.网上查询得知,OpenGL 绘图的机制是:先用 OpenGL 的绘图上下文 Rendering Context (简称为 RC )把图画好,再把所绘结果通过 SwapBuf…