在使用delphi创建模态窗体的时候最小化窗体会导致最小化的窗体不可见,再次点击主窗体才会显示. 在这个模态窗体中增加以下函数 procedure WmSysCommand(var msg: TMessage); message WM_SYSCOMMAND; procedure TForm1.WmSysCommand(var msg: TMessage); begin inherited;//必须加,否则模态窗关闭最大化还原将不能用 if msg.WParam = SC_MINIMIZE the…
源起: 近期所介入的几个项目中,最后视频生成窗体,为一模态对话框.因生成时间可能较长,所以其窗体可以最小化,它最小化时同时最小化主程序,唤醒时主程序再复原. 代码亦是8年前本人所写,一直那样用了,也没什么不妥,但总感觉显示效果有优化空间,回头看看当初代码少了些简练.于是用些时间做些验证,寻得相对好点的优化方案. 1.最初实现: 方式是接管模态窗体WM_SYSCOMMAND消息,拦截SC_MINIMIZE窗体最小化消息值进行处理,代码如下: type TfrmModal = class(TForm…
应用程序有托盘图标,窗体最小化或者隐藏窗体时,点击托盘图标需要恢复窗体显示,并且恢复之前的现实状体,正常大小或者最大化显示.例如:最大化显示窗体时,点击最小化按钮,窗体最小化,点击托盘图标将最大化显示主窗体. IsIconic(m_hWnd) 判断主窗体是否最小化 调用::ShowWindow(m_hWnd, SW_RESTORE); 恢复最小化窗体的显示. IsWindowVisible(m_hWnd) 判断窗体是否隐藏,调用ShowWindow(m_hWnd, SW_SHOW) 显示隐藏的窗…
1.设置WinForm窗体属性showinTask=false 2.加notifyicon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标. 3.添加窗体最小化事件(首先需要添加事件引用): this.SizeChanged += new System.EventHandler(this.Form1_SizeChanged); private void Form1_SizeChanged(object sender, EventArgs e) { if(…
一 基本功能 1. 这里是用 NotifyIcon 控件来实现,但 WPF 下没有 NotifyIcon  控件,怎么办,用 WinForm 下的呗. 先引用  .NET 自带的两个程序集 System.Windows.Forms 是用来使用 NotifyIcon 控件的:System.Drawing 是用来引用图标文件的 2. 图标 3. 设置图标属性 4.这里很重要,因为程序运行后,会在运行程序目录下去找图标文件,这样设置后就会在应用程序目录下生成对应的文件,如果不设置,到时候出错就找不到原…
在Delphi 7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本.定义如下: 123456789   _NOTIFYICONDATAA = record   cbSize: DWORD;   Wnd: HWND;   uID: UINT;   uFlags: UINT;   uCallbackMessage: UINT;   hIcon: HICON;   szTip: array [0..63] of Ansi…
在Delphi 7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本.定义如下: 123456789   _NOTIFYICONDATAA = record   cbSize: DWORD;   Wnd: HWND;   uID: UINT;   uFlags: UINT;   uCallbackMessage: UINT;   hIcon: HICON;   szTip: array [0..63] of Ansi…
Mac 中应用程序窗口的最小化和隐藏的快捷键: CMD + H 隐藏应用程序 CMD + M 最小化应用程序 重点在于两点的区别: 最小化会隐藏当前应用程序的窗口,不切换当前的应用程序:隐藏应用程序会隐藏窗口,并将当前的焦点切换到上一次活跃的应用程序. 在用CMD + TAB手动切换应用程序时,隐藏的窗口会自动展现,最小化的却不会. 最小化会有动画效果,隐藏不会有动画.…
我们知道,当我们需要对Control进行截图时,我们可以使用Control.DrawToBitmap()进行截图, 那么问题来了,当我们的窗体最小化了,我们还怎么截图呢? 当窗体最小化的时候,我们知道Control的size为(0,0),那么你截图的话也就没有或者一片漆黑,嘿嘿 其实我们可以这么搞来曲线救国,请往下看! 假如我们需要截图 TabControl的图片呢,我们要怎么做呢? 因为最小化会将该控件的Size设置为(0,0),所以我们控制他的Size就可以了, 我们修改MininmumSi…
1.设置窗体属性showinTask=false 2.加notifyicon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标. 3.添加窗体最小化事件(首先需要添加事件引用): this.SizeChanged += new System.EventHandler(this.Form1_SizeChanged);//上面一行是主窗体InitializeComponent()方法中需要添加的引用 private void Form1_SizeChanged…