Win32 应用界面构造
来源:互联网 发布:什么是爱情 知乎 编辑:程序博客网 时间:2024/06/06 07:42
最近想学多一点,所以拿win32来玩了一下。
最初很纳闷win32怎样摆控件的,看了很多程序,明白了,除了系统已经设定好的系统控件button,edit,list box等,所有的控件都得在这几个基本控件上靠自己组合写成新的控件。
普通界面
首先,生成界面,肯定要用RegisterClassEx注册一个界面类,这个类里面包含了一些控件界面的基本信息,然后在调用CreateWindow把控件生成出来,如果想生成一个Windows窗口界面,则跟着还需要调用 ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
来显示Windows窗口界面。
hWnd为此窗口的全局句柄,所有的子控件都得依附其用CreateWindow生成,举个生成button的例子:
hWndStartbutton = CreateWindow(_T("button"),_T("开始"),WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
2,2,100,25,hWnd,(HMENU)1,((LPCREATESTRUCT)lParam)->hInstance, NULL);参数分别为:在系统里注册控件的名(如果是系统控件,系统默认就给其注册了),控件界面所显示的文字,控件样式,位置x,位置y,宽,高,Windows界面句柄,控件的ID,整个进程的句柄。
如果想改变控件字体,则首先通过CreateFontIndirect生成一个字体结构,具体如:
LOGFONT logfont;
ZeroMemory(&logfont,sizeof(LOGFONT));
logfont.lfCharSet = GB2312_CHARSET;
logfont.lfHeight = -12;
_tcscpy(logfont.lfFaceName,_T("宋体"));
hFont = CreateFontIndirect(&logfont);
然后用 SendMessage(hWndStartbutton, WM_SETFONT, (WPARAM)hFont, MAKELPARAM(TRUE,0) )发消息到控件上,改变控件的字体。
最初很纳闷win32怎样摆控件的,看了很多程序,明白了,除了系统已经设定好的系统控件button,edit,list box等,所有的控件都得在这几个基本控件上靠自己组合写成新的控件。
普通界面
首先,生成界面,肯定要用RegisterClassEx注册一个界面类,这个类里面包含了一些控件界面的基本信息,然后在调用CreateWindow把控件生成出来,如果想生成一个Windows窗口界面,则跟着还需要调用 ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
来显示Windows窗口界面。
hWnd为此窗口的全局句柄,所有的子控件都得依附其用CreateWindow生成,举个生成button的例子:
hWndStartbutton = CreateWindow(_T("button"),_T("开始"),WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
2,2,100,25,hWnd,(HMENU)1,((LPCREATESTRUCT)lParam)->hInstance, NULL);参数分别为:在系统里注册控件的名(如果是系统控件,系统默认就给其注册了),控件界面所显示的文字,控件样式,位置x,位置y,宽,高,Windows界面句柄,控件的ID,整个进程的句柄。
如果想改变控件字体,则首先通过CreateFontIndirect生成一个字体结构,具体如:
LOGFONT logfont;
ZeroMemory(&logfont,sizeof(LOGFONT));
logfont.lfCharSet = GB2312_CHARSET;
logfont.lfHeight = -12;
_tcscpy(logfont.lfFaceName,_T("宋体"));
hFont = CreateFontIndirect(&logfont);
然后用 SendMessage(hWndStartbutton, WM_SETFONT, (WPARAM)hFont, MAKELPARAM(TRUE,0) )发消息到控件上,改变控件的字体。
自定义控件
注册一个控件类,绑定好处理消息函数,在消息处理函数中,处理WM_PAINT时绘画控件,处理WM_COMMAND时,根据用户传来的不同的WPARAM wParam, LPARAM lParam值,作出相应的操作处理。
使用控件的注意:
1、CEdit或Edit Control中获取其文本信息,LRESULT lret = SendMessage(tccHWND->hwndEdit, EM_GETLINE , (WPARAM)NULL, (LPARAM)_filterip);在_filterip这个获取文本数组的第一位_filterip[0]必须要设置为数组的长度才能获取文本信息。
2、在Combox Control中必须要按下下拉按钮把下拉范围拉大才能看见你加进去的内容。
- Win32 应用界面构造
- win32界面
- win32界面
- 界面构造
- 应用系统菜单与主界面 构造模式 01
- 界面构造UI界面
- WIN32 SDK界面编程
- MFC+opencv+win32界面编程
- win32 API界面编程---窗口
- 深入android界面构造
- WIN32 基本应用框架
- win32 rundll32 应用列表
- C# Win32 API 应用
- win32应用程序设计流程
- 在Win32 OpenGL环境渲染CEGUI界面
- Win32教程32-多文档界面(MDI)
- win32控制台界面等待其它事件
- 界面颜色改变 对话框 win32程序
- 关于表空间
- ORACLE常用傻瓜问题1000问
- 使用pcap_findalldevs_ex获取设备列表遇到的问题
- Unbuntu GTK安装
- 经典js整理
- Win32 应用界面构造
- 获得linux指令源文件
- Oracle分析函数:First_Value
- Ubuntu Linux下实现QQ的三种方式
- ubuntu 3D效果
- GDB 调试(转)
- 消息映射表
- Linux Configure(转)
- 146条经典民间偏方(转)