精华内容
下载资源
问答
  • Windows窗口对话框

    千次阅读 2016-02-18 22:19:46
    1、Windows窗口介绍    在Windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表。系统的窗口管理器通过这个list来获取窗口信息和管理窗口,这个数据结构中有四个数据用来构建list,即child、...
    1、Windows窗口介绍
        
         在Windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表。系统的窗口管理器通过这个list来获取窗口信息和管理窗口,这个数据结构中有四个数据用来构建list,即child、sibling、parent、owner四个域。而窗口之间的关系有两种:owner-owned(拥有-被拥有关系)、
    parent-child(父-子关系)。
         如果单纯说明窗口的类型,那么Windows中定义了3种窗口类型:
         CHILD           :子窗口
         POPUP          :弹出窗口,适合作为主窗口。
         OVERLAPPED:重叠式窗口,适合作为主窗口,默认具有标题栏等属性。
         两种窗口风格:
         WS_CLIPSIBLING    :适用于同一级子窗口之间,表示当某设置了该风格的子窗口需要重绘时,被遮挡区域不进行重绘;
         WS_CLIPCHILDREN:适用于父窗口和子窗口之间,表示当某设置了该风格的父窗口需要重绘时,被遮挡区域不进行重绘;
    在Windows窗口中,overlapped窗口和popup窗口肯定具有WS_CLIPSIBLING风格,即使在代码中人为去掉该风格,Windows还是会自动添加上。

    2、作为子窗口的控件

         控件属于子窗口,是系统已经定义好的窗口类,不需要进行注册,也不需要添加消息处理函数。只需在主窗口得到WM_CREATE消息时,建立子窗口即可。
         控件的创建方式:
         a.随对话框资源一同创建,属于可视化编程方式可以方便地设置各个控件的属性;
         b.CreateWindow创建,代码控制,创建的位置更为精准;

         所有控件都有且只有一个ID,通过查看资源的属性即可看到操作控件所使用的控件句柄可由GetDigItem函数得到。此时的父窗口更像一个消息中转站,子控件发生的任何行为都会给父窗口发送消息,父窗口得到消息之后将根据消息的内容,或是给其他子控件发送控制消息,亦或其他操作。
         一般情况下,我们都是直接将控件拖拽到对话框中在属性栏中设置ID和标题即可,常用控件主要有Button/CheckBox/EditControl/ComboBox/StaticText/Picture Control/Process Control/List Control/Table Control等。

    3、对话框

         用途:
         a.发送消息:应用程序向用户发送消息时使用,常见有警告消息框,提示消息框等;
         b.接收消息:应用程序希望得到用户输入时使用;
         c.提供消息:应用程序向用户提供信息时使用;

         对话框与一般应用程序子窗口比较:
         a.创建形式:在资源描述文件定义对话框模板完成创建;
         b.独立的消息处理函数:应用程序在消息循环中判断消息队列中的消息,若为对话框消息,则将消息发往对话框处理函数进行处理;
         c.包含多种控件:对话框中根据需要包含各式形状和功能的控件,应用程序通过控件完成与用户之间的对话框交互。

         对话框分类:
         a.模态对话框:要求用户必须结束该对话框之后才可切换到其他窗口,即该对话框与同一应用程序中的其他窗口互锁;
                               使用DialogBox函数创建,自带消息循环。
         b.非模态对话框:允许在结束该对话框之前切换到其他窗口操作;使用CreateDialog函数创建,需编写消息循环。

         
    展开全文
  • 解决方法:使用窗口移动精灵或AltDrag这两款窗口移动工具,摆脱只能拖动标题栏移动窗口的限制,任意移动超出屏幕的窗口,将窗口对话框移动到顶部后,仍可继续向上拖动,使窗口顶部移动到屏幕之外,底部就会显示...

    软件窗口太大显示不全

    问题:软件窗口或对话框太大,最大化也无法显示全部,拖动标题栏移动到屏幕顶部,底部也显示不出来。具体见下面两张图片。

    解决方法:使用窗口移动精灵AltDrag这两款窗口移动工具,摆脱只能拖动标题栏移动窗口的限制,任意移动超出屏幕的窗口,将窗口或对话框移动到顶部后,仍可继续向上拖动,使窗口顶部移动到屏幕之外,底部就会显示出来。

    窗口移动精灵:一款可以任意移动窗口、改变窗口大小的免费工具。

    使用方法:选中窗口,按Win+方向键移动窗口,或者按Ctrl+Alt+鼠标左键在窗口的任意位置拖动就可将窗口随意移动到任意极限位置,从而使窗口未显示部分显示出来。

    AltDrag是一款开源软件,可以突破Windows窗口本身的操作局限,用Alt按键+鼠标左键拖动的方式任意移动窗口位置,还能调整窗口大小。

    AltDrag移动窗口:
    (1)、在任务栏右键点击程序图标,或使用Alt+空格快捷键,出现右键菜单
    (2)、选择“移动”项,或按m键,标题栏出现十字形的拖动光标
    (3)、不要移动鼠标,直接点击并拖动,无效的话,用上下左右方向键移动

    问题描述:
    下图一,当在大屏幕显示时,可以把对话框显示完全
    在这里插入图片描述
    图二,挡在小屏幕上显示时,下面的确定,取消,帮助,完全被遮挡,无法用鼠标点击。
    在这里插入图片描述

    求助:

    曾经在ThinkPadX250-Win10系统笔记本上,对于超出屏幕边界的对话框,只要移动鼠标到边界,对话框会自动滚动出未显示的部分。如:对话框的下边界超出屏幕,鼠标移动到下边界,对话框就会自动上划,显示下面所有的内容。
    后来我在该机器上重装了Win10系统,就再也没有出现过该功能,希望有知道的网友,告诉我一下,万分感谢。

    参考内容:
    软件窗口太大显示不全 « Webish Blog

    展开全文
  • Q760642.zip windows程序设计 编写Windows窗口应用程序实现对话框与菜单的应用 https://ask.csdn.net/questions/760642 编写Windows窗口应用程序实现对话框与菜单的应用 1)编程实现如下应用程序,含有菜单,单击...
  • 动态切割窗口,对于界面编程具有一定的参考价值。
  • C#编写的注册登录程序,注册信息保存于文本文件当中
  • unity 实现调用Windows窗口/对话框交互

    千次阅读 2018-05-16 23:59:49
    unity 实现调用Windows窗口/对话框交互 Unity调用Window窗口 本文提供全流程,中文翻译。助力快速完成 Unity调用 Window api 执行保存/打开操作 用来控制打开/保存项目文件 将两个脚本放到项目中,分别绑定2个按钮 ...

    Unity调用Window窗口


    本文提供全流程,中文翻译。

    Chinar 坚持将简单的生活方式,带给世人!

    (拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例)



    Chinar —— 心分享、心创新!

    助力快速完成 Unity调用 Window api 执行保存/打开操作

    为新手节省宝贵的时间,避免采坑!


    Chinar 教程效果:
    这里写图片描述



    全文高清图片,点击即可放大观看 (很多人竟然不知道)


    1

    File Controller —— 文件控制脚本

    晚会儿修改

    用来控制打开/保存项目文件

    将两个脚本放到项目中,分别绑定2个按钮 打开/保存

    ChinarFileController 脚本需要挂载到空物体上

    即可正常调用

    具体需求,需要自己来定,保存到某个路径下
    举个栗子黑白88

    using UnityEngine;
    using System.Runtime.InteropServices;
    using System;
    
    
    /// <summary>
    /// 文件控制脚本
    /// </summary>
    public class ChinarFileController : MonoBehaviour
    {
        /// <summary>
        /// 打开项目
        /// </summary>
        public void OpenProject()
        {
            OpenFileDlg pth  = new OpenFileDlg();
            pth.structSize   = Marshal.SizeOf(pth);
            pth.filter       = "All files (*.*)|*.*";
            pth.file         = new string(new char[256]);
            pth.maxFile      = pth.file.Length;
            pth.fileTitle    = new string(new char[64]);
            pth.maxFileTitle = pth.fileTitle.Length;
            pth.initialDir   = Application.dataPath.Replace("/", "\\") + "\\Resources"; //默认路径
            pth.title        = "打开项目";
            pth.defExt       = "dat";
            pth.flags        = 0x00080000 | 0x00001000 | 0x00000800 | 0x00000200 | 0x00000008;
            if (OpenFileDialog.GetOpenFileName(pth))
            {
                string filepath = pth.file; //选择的文件路径;  
                Debug.Log(filepath);
            }
        }
    
    
        /// <summary>
        /// 保存文件项目
        /// </summary>
        public void SaveProject()
        {
            SaveFileDlg pth  = new SaveFileDlg();
            pth.structSize   = Marshal.SizeOf(pth);
            pth.filter       = "All files (*.*)|*.*";
            pth.file         = new string(new char[256]);
            pth.maxFile      = pth.file.Length;
            pth.fileTitle    = new string(new char[64]);
            pth.maxFileTitle = pth.fileTitle.Length;
            pth.initialDir   = Application.dataPath; //默认路径
            pth.title        = "保存项目";
            pth.defExt       = "dat";
            pth.flags        = 0x00080000 | 0x00001000 | 0x00000800 | 0x00000200 | 0x00000008;
            if (SaveFileDialog.GetSaveFileName(pth))
            {
                string filepath = pth.file; //选择的文件路径;  
                Debug.Log(filepath);
            }
        }
    }

    2

    FileDlog —— 文件日志


    无需挂载到空物体上
    举个栗子黑白88

    using System.Runtime.InteropServices;
    using System;
    
    
    /// <summary>
    /// 文件日志类
    /// </summary>
    // [特性(布局种类.有序,字符集=字符集.自动)]
    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
    public class ChinarFileDlog
    {
        public int    structSize    = 0;
        public IntPtr dlgOwner      = IntPtr.Zero;
        public IntPtr instance      = IntPtr.Zero;
        public String filter        = null;
        public String customFilter  = null;
        public int    maxCustFilter = 0;
        public int    filterIndex   = 0;
        public String file          = null;
        public int    maxFile       = 0;
        public String fileTitle     = null;
        public int    maxFileTitle  = 0;
        public String initialDir    = null;
        public String title         = null;
        public int    flags         = 0;
        public short  fileOffset    = 0;
        public short  fileExtension = 0;
        public String defExt        = null;
        public IntPtr custData      = IntPtr.Zero;
        public IntPtr hook          = IntPtr.Zero;
        public String templateName  = null;
        public IntPtr reservedPtr   = IntPtr.Zero;
        public int    reservedInt   = 0;
        public int    flagsEx       = 0;
    }
    
    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
    public class OpenFileDlg : ChinarFileDlog
    {
    }
    
    public class OpenFileDialog
    {
        [DllImport("Comdlg32.dll", SetLastError = true, ThrowOnUnmappableChar = true, CharSet = CharSet.Auto)]
        public static extern bool GetOpenFileName([In, Out] OpenFileDlg ofd);
    }
    
    public class SaveFileDialog
    {
        [DllImport("Comdlg32.dll", SetLastError = true, ThrowOnUnmappableChar = true, CharSet = CharSet.Auto)]
        public static extern bool GetSaveFileName([In, Out] SaveFileDlg ofd);
    }
    
    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
    public class SaveFileDlg : ChinarFileDlog
    {
    }

    运行效果:
    这里写图片描述


    支持

    May Be —— 搞开发,总有一天要做的事!


    拥有自己的服务器,无需再找攻略!

    Chinar 提供一站式教程,闭眼式创建!

    为新手节省宝贵时间,避免采坑!


    先点击领取 —— 阿里全产品优惠券 (享受最低优惠)


    1 —— 云服务器超全购买流程 (新手必备!)

    2 —— 阿里ECS云服务器自定义配置 - 购买教程(新手必备!)

    3—— Windows 服务器配置、运行、建站一条龙 !

    4 —— Linux 服务器配置、运行、建站一条龙 !




    <script type="math/tex" id="MathJax-Element-2"> </script>
    技术交流群:806091680 ! Chinar 欢迎你的加入


    END

    本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究

    对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: ichinar@icloud.com

    对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址
    >

    展开全文
  • 本课程是《Electron实战》专题的第2个课程,本课程将帮助学员掌握Electron中窗口的各种用法。 本课程同时在Windows和Mac OS X平台上操作和演示,同时也适合于Linux。不管学员使用什么平台,本课程的源代码都可以运行...
  • 此板条箱在Windows API中的“打开”和“保存”对话框上提供了易于使用的抽象,可在GNU和MSVC工具链下使用,且依赖性最小。 例子 标准打开对话框 let dialog_result = wfd :: open_dialog ( Default :: default ())...
  • 内容索引:VC/C++源码,界面编程,窗口,透明窗体 VC++的窗口对话框中挖洞或局部透明的实现,呵呵,说的有点拉杂,意思也就是,在窗口中挖一个洞,透过这个洞可看到其它的东西,比如下层窗口的内容,不要小看这个功能...
  • 本课程是《Electron实战》专题的第2个课程,本课程将帮助学员掌握Electron中窗口的各种用法。 本课程同时在Windows和Mac OS X平台上操作和演示,同时也适合于Linux。不管学员使用什么平台,本课程的源代码都可以...
    Electron实战(2):窗口与对话框视频课程—13人已学习 
    
    课程介绍    
    png
        本课程是《Electron实战》专题的第2个课程,本课程将帮助学员掌握Electron中窗口的各种用法。 本课程同时在Windows和Mac OS X平台上操作和演示,同时也适合于Linux。不管学员使用什么平台,本课程的源代码都可以运行。
    课程收益
        熟悉Electron窗口API
        熟悉Electron对话框API
        熟悉用HTML5 API操作窗口
        熟悉屏幕和进度条API
    讲师介绍
        李宁 更多讲师课程
        东北大学计算机专业硕士研究生,欧瑞科技创始人&CEO,曾任国内著名软件公司项目经理,畅销书作者,企业IT内训讲师,CSDN学院专家讲师,制作视频课程超过1000小时。拥有超过15年的企业内训经验和开发经验。目前主要从事Python、人工智能、大数据、区块链、JavaScript、Java、C++等技术的研究和开发,现在正在带领团队开发支持区块链的跨平台开发系统。曾出版超过30多本IT畅销书,主要著作包括《Python从菜鸟到高手》、《第一行代码:以太坊》等。授课风趣幽默,讲解条理清晰、通俗易懂,对知识有自己独到见解。能举一反三,发散学生的思维,指引学生发掘适合自己的学习方法。
    课程大纲
      第1章:窗口
        1. 窗口的尺寸和位置  25:50
        2. 全屏窗口  10:01
        3. 无边框和透明窗口  3:08
        4. 窗口的锁定模式  12:04
        5. 设置窗口图标  6:23
        6. 优雅地加载页面  8:26
        7. 父子窗口(Mac OS X和Windows有一定差异)  9:28
        8. 模态窗口(Mac OS X和Windows差异比较大)  9:15
        9. 用代码关闭多个窗口  20:31
        10. 窗口之间的交互(传递数据)  24:54
        11. 文件展示窗口(只针对Mac OS X)  5:25
      第2章:对话框
        1. 打开对话框(1):基础知识  12:20
        2. 打开对话框(2):定制打开对话框  7:58
        3. 打开对话框(3):选择指定类型的文件  7:28
        4. 打开对话框(4):选择和创建目录  7:16
        5. 打开对话框(5):选择多个文件和目录  7:26
        6. 打开对话框(6):通过回调函数返回选择结果  4:31
        7. 保存对话框  9:26
        8. 消息对话框(1):基础知识  4:34
        9. 消息对话框(2):定制消息对话框的图标  6:34
        10. 消息对话框(3):设置消息对话框的类型  7:31
        11. 消息对话框(4):为消息对话框添加多个按钮  6:35
        12. 错误对话框  2:54
      第3章:HTML5 API创建子窗口
        1. 用window.open方法创建子窗口  11:56
        2. 控制窗口与显示打印对话框  11:16
        3. 使用postMessage方法传递数据  10:13
        4. 从窗口返回数据  6:05
        5. 页面来源  4:04
        6. 使用eval方法向子窗口传递数  5:11
      第4章:其他API和组件
        1. 在窗口中嵌入其他页面(webview组件)  15:50
        2. 使用webFrame渲染页面  5:29
        3. 获取屏幕尺寸和鼠标的绝对坐标  3:53
        4. 在Windows任务栏添加进度条  2:48
    大家可以点击【 查看详情】查看我的课程
    展开全文
  • Windows窗口、控件和对话框   windows应用程序是通过窗口(window)、控件(control)和对话框(dialog box)来和用户交互的,windows系统预定义了很多基本的交互行为和外观,也预定义了很多共用的控件和对话框,...
  • 编写Windows窗口应用程序实现对话框与菜单的应用 1)编程实现如下应用程序,含有菜单,单击“新建”时弹出新建对话框(非模态对话框),单击对话框颜色按钮后应用程序窗口字体和背景色发生相应的变化。单击“关于”...
  • Windows Sock 连接的范例程序
  • Electron窗口对话框

    千次阅读 2019-08-14 10:42:57
    文章目录窗口BrowserWindow无框窗口窗口拖拽透明窗口Webview对话框错误提示对话框文件框信息框 窗口 BrowserWindow 主进程模块BrowserWindow用于创建和控制浏览器窗口。 mainWindow = new BrowserWindow({ width: ...
  • 采用MFC应用框架编写基于Doc/View结构的Windows应用程序.掌握文档视图之间的相互关系。
  • 我初学vc时实现windows窗口的代码
  • 传统的WINDOWS应用软件界面给人的感觉总是千篇一律的方方正正的窗体
  • 非常好的界面程序!可以实现类似于windows任务栏一样停靠在桌面上
  • windows sdk 编程的小应用
  • windows sdk 编程的小应用
  • 就是这样一个简单的界面,窗口上重绘的对话框(这种写法参考我之前博文): 需要做到的就是点击确定,获取文本框中内容。 // 处理对话框消息 INT_PTR CALLBACK NewDlgProc(HWND hdlg, UINT msg, WPARAM ...
  • 选择新建对话框.#include<Windows.h> #include "resource.h" LRESULT CALLBACK MainWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstace,HINSTANCE hPre
  • cresize:纯C和Win32中窗口对话框的可调整大小的布局引擎
  • 非常简单的Windows程序,对于菜单和对话框的编写一目了然。适合初学者对于Windows编程的学习。
  • 一个很炫酷的向导组件,效果只有在 Windows7 或以上操作系统才会启用。该控件可直接在界面中设计,设计页面时就像普通窗口一样可以自由放置组件。(附带使用例子)
  • C++ WINDOWS 消息对话框

    千次阅读 2019-04-14 16:56:04
    C++ WINDOWS 消息对话框 /*加载WINDOWS API头文件*/ #include<Windows.h> /* TEXT() 宽字符宏 int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow) 返回类型 int...
  • windows对话框

    2013-04-25 13:33:27
    该文档描述了windows开发过程中的对话框窗口,包括了对话框的种类,使用方式,对话框窗口特有的窗口过程函数,对话框的资源模板和内存模板的创建方法。
  • Windows对话框依其对话框的关系可分为两类: (1)“令其父窗口无效,直到对话框结束”,这种称为modal对话框。 (2)“父窗口与对话框共同运行”,这种称为modeless对话框。 比较常用的对话框为modal对话框,...
  • 不久以前,VC知识库曾探讨过如何在MFC应用中打开Windows 2000风格的“文件/打开”对话框(类似Outlook Express左边的Places Bar)。最近又有许多人问及这方面的问题,也许我在那篇文章中讲的不是很清楚,所以这次在...
  • windows api打开文件对话框

    万次阅读 2014-04-09 18:07:27
    windows api 写打开文件对话框 1.主要使用OPENFILENAME ,GetOpenFileName, GetSaveFileName; OPENFILENAME 结构体介绍:要使用GetOpenFileName 和GetSaveFileName 先要初始化这个结构体, typedef struct ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 143,254
精华内容 57,301
关键字:

windows7的窗口与对话框