Windows 公共控件库研究
已知Windows公共控件库包含工具条控件,树视图控件,ListView控件;参见;
https://blog.csdn.net/bcbobo21cn/article/details/106287676
https://blog.csdn.net/bcbobo21cn/article/details/106299245
https://blog.csdn.net/bcbobo21cn/article/details/106289420
来看一下此DLL是否还包含其他控件或函数;就是这个comctl32.dll;
看下还有xxxMRUxxx函数,这个应是处理 最近打开文件列表 的函数;
然后还有属性页控件;CreatePropertySheetPage;
DPAxxx不知道干嘛的;查了一下好像是 文档类型......;
滚动条函数或控件;
图像列表控件;这个和工具条配合使用的,往工具条里面添加图标的;
然后就是些没有名字的函数;估计没用;
下面来创建一下属性页控件看看;
#include <windows.h>
#include <commctrl.h>
#include "resource.h"LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
BOOL CALLBACK PPYProc(HWND , UINT , WPARAM , LPARAM );HINSTANCE hInst;
TCHAR szClassName[] = TEXT("ppyDemo");int WINAPI
WinMain (HINSTANCE hThisInstance,HINSTANCE hPrevInstance,LPSTR lpszArgument,int nFunsterStil)
{HWND hwnd;MSG messages;WNDCLASSEX wincl;hInst = hThisInstance;wincl.hInstance = hThisInstance;wincl.lpszClassName = szClassName;wincl.lpfnWndProc = WindowProcedure;wincl.style = CS_DBLCLKS;wincl.cbSize = sizeof (WNDCLASSEX);wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);wincl.hCursor = LoadCursor (NULL, IDC_ARROW);wincl.lpszMenuName = MAKEINTRESOURCE (IDC_PPYDEMO);wincl.cbClsExtra = 0;wincl.cbWndExtra = 0;wincl.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);if (!RegisterClassEx (&wincl))return 0;hwnd = CreateWindowEx (0,szClassName,TEXT("ppyDemo"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,400,400,HWND_DESKTOP,NULL,hThisInstance,NULL);ShowWindow (hwnd, nFunsterStil);while (GetMessage (&messages, NULL, 0, 0)){TranslateMessage(&messages);DispatchMessage(&messages);}return messages.wParam;
}LRESULT CALLBACK
WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{PAINTSTRUCT ps;HDC hdc;RECT rt;int ret;char szBuffer[100];PROPSHEETPAGE psp={0};HPROPSHEETPAGE hsp;switch (message){case WM_COMMAND:switch (LOWORD(wParam)){case IDM_ppy://psp.pszHeaderTitle="属性页1";//psp.pszHeaderSubTitle="属性页1-001";psp.dwSize=sizeof(PROPSHEETPAGE);psp.dwFlags=PSP_DEFAULT | PSP_USETITLE|PSP_HASHELP|PSP_PREMATURE|PSP_RTLREADING;psp.hInstance=hInst;psp.pszTitle="属性页1";psp.pfnDlgProc=PPYProc;psp.hIcon=NULL;psp.pszIcon=NULL;hsp=CreatePropertySheetPage(&psp);//hsp=PropertySheet(&psp);wsprintf(szBuffer, "创建属性页控件:%x ",hsp);MessageBox(NULL,szBuffer,TEXT("创建属性页"),0);break;case IDM_ABOUT:MessageBox (hwnd, TEXT ("ppyDemo v1.0\nCopyright (C) 2020\n by bo"),TEXT ("ppyDemo"), MB_OK | MB_ICONINFORMATION);break;case IDM_EXIT:DestroyWindow(hwnd);break;default:return DefWindowProc(hwnd, message, wParam, lParam); }break;case WM_CREATE:break;case WM_PAINT:hdc = BeginPaint(hwnd, &ps); GetClientRect(hwnd, &rt);EndPaint(hwnd, &ps);break;case WM_DESTROY:PostQuitMessage (0);break;default:return DefWindowProc (hwnd, message, wParam, lParam);}return 0;
}BOOL CALLBACK PPYProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{switch(uMsg){case WM_INITDIALOG:MessageBox(NULL, "属性页初始化.", "", MB_OK);break; case WM_KEYDOWN:break; case WM_COMMAND:return TRUE;case WM_CLOSE:DestroyWindow(hWnd);return TRUE;case WM_DESTROY:PostQuitMessage(0);return TRUE;}return FALSE; // 如果函数不处理消息,则对话框应用程序应该返回零值。
}
运行;属性页创建失败返回0;创建成功;
但是属性页界面不会显示;PROPSHEETPAGE结构体都已经赋值;下回再看;
菜单;
工程;
资源和头文件;
#include "resource.h"
#include <windows.h>/
//
// Menu
//IDC_PPYDEMO MENU
BEGINPOPUP "&File"BEGINMENUITEM "创建属性页控件", IDM_ppyMENUITEM "E&xit", IDM_EXITENDPOPUP "&Help"BEGINMENUITEM "&About ...", IDM_ABOUTEND
END
#define IDM_EXIT 10001
#define IDM_ABOUT 10002#define IDC_PPYDEMO 10101
#define IDD_ABOUTBOX 10102
#define IDM_ppy 40001
win32 属性页控件相关的参考在;这不是MFC里面的属性页控件;
https://docs.microsoft.com/en-us/previous-versions/ms910670(v=msdn.10)
PROPSHEETPAGE
https://docs.microsoft.com/en-us/windows/win32/api/prsht/nf-prsht-createpropertysheetpagea
CreatePropertySheetPageA function
Windows 公共控件库研究相关推荐
- Win32使用Windows公共控件库创建工具条
Win32程序创建工具条,需要使用Windows公共控件库,是另一个DLL:本身Win32 API 是在系统自带的3个DLL: Win7,CFree 5.0:运行结果: 引入lib文件的设置如下: 如 ...
- MFC之使用 Windows 标准控件
使用 Windows 标准控件 为了提高常用代码的复用性,VC 使用控件将常用的诸如用户输入.操作数据等功能封装起来.控件通常放在对话框或工具栏中,分为 3 种:Windows 标准控件.Active ...
- 【2017-4-26】Winform 公共控件 菜单和工具栏
作废 等待重写 名称 功能 取值 赋值 备注 Button 按钮 多用来触发点击事件 CheckBox 多选按钮 CheckedListBox 多选按钮组 ...
- wpf项目源代码_C# WPF开源控件库:MahApps.Metro
C# WPF开源控件库:MahApps.Metro ❝ 其实站长很久之前就知道这个开源WPF控件库了,只是一直欣赏不了这种风格,但也star了该项目.每次浏览该仓库时,发现star越来越多,也看到很多 ...
- C# WPF开源控件库:MahApps.Metro
❝ 其实站长很久之前就知道这个开源WPF控件库了,只是一直欣赏不了这种风格,但也star了该项目.每次浏览该仓库时,发现star越来越多,也看到很多网友对它的褒奖,所以今天就向大家推荐这款WPF控件库 ...
- 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- 很棒的WPF控件库 Newbeecoder.UI
Newbeecoder.UI是一个强大的WPF基于MVVM框架和控件库实用程序.它支持窗口边框阴影,窗口圆角,包含许多优雅的控件.它让开发人员更高效.更快地创建漂亮的WPF构建应用程序.它支持从4.0 ...
- Winform下ToolStrip承载自定义控件或 Windows 窗体控件。
如题,使用ToolStripControlHost. 先看MSDN上介绍的: ToolStripControlHost 是 ToolStripComboBox.ToolStripTextBox ...
- Win32公共控件 - 状态栏和工具栏
本篇是介绍公共控件系列文章的第2部分,描述了两种新的公共控件:状态栏和工具栏.本系列的其它文章涵盖了以下主题: 第1部分:基础 第3部分:滑动条.进度条和上下控件 第4部分:表头窗口和列表视图窗口 第 ...
最新文章
- python获取文本光标_使用python readline时如何获取(并设置)当前bash光标位置?
- iis应用程序池监控方法实例
- 华为二面!!!被问常用API,这也太偏门了吧,我秀了一波hhhh~
- Android 换肤demo,轻量快捷接入集成,判断是否夜间模式
- leetcode349. 两个数组的交集
- Oracle 11g安装(window)的7个服务
- 汇编笔记-DOSBox安装和使用
- [渝粤教育] 中国地质大学 审计学 复习题
- linux .o,.a,.so文件区别是什么
- 一文读懂 K8s 持久化存储 | 凌云时刻
- ListView嵌套GridView使用解析
- python pandas读取txt文件_Pandas 读取txt
- C# Winform生成条码二维码
- 1离线TiDB-Ansible 部署问题-总结
- 考研英语近义词与反义词·八
- Rhyme/Spring是如何简化Java开发的(POJO、DI、AOP、模板)
- win10 激活方式
- android ble notify,Android Ble notify功能踩坑
- web攻击日志分析之入门指南
- 游戏开发-2022-11-30-马戏团
热门文章
- 有关递归的三道算法题总结
- 关于Icon,Image,ImageIcon的简单的对比参考
- Mac Oracle SQL Developer “欢迎使用“页卡死,解决办法
- Windows 技术篇 - 电脑秒速关机设置方法,注册表修改3个缓冲等待时间
- WeUI用Toast组件显示Loading
- CodeBlacks16\17\20版本下载
- CTFshow 信息收集 web6
- 第七周实践项目6 停车场模拟(栈和队列综合)
- Python基础06 循环
- 爬取广州所有停车场数据(Python)