首页
>
Windows API吧
>
浏览帖子
马新简体
大陆简体
台灣正體
港澳繁體
|
登录
|
注册
进入侃吧
进入个人空间
全部
仅作者
目前共有
8
篇帖子。
内容转换:
不转换▼
点击
回复
557
7
【教程】用三行C++代码讓Win32程序擁有XP風格控件,无需manifest文件或24资源
巨大八爪鱼
一派护法 十九级
1楼
发表于:
2015-12-5 14:34
回复
首先,在Visual Studio 2012中,建立一个Win32空工程,再新建一个源文件,名叫Main.cpp:
【代码】
#include <Windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL, L"Hello World!", L"Hello", MB_ICONWARNING);
return 0;
}
然后编译运行。
运行结果:
巨大八爪鱼
一派护法 十九级
2楼
发表于:
2015-12-5 14:38
回复
可见目前该程序的控件没有XP风格。
返回代码编辑窗口。在文件包含部分加入#include <CommCtrl.h>。注意这个一定要放到#include <Windows.h>的下面,如果放反了的话,编译时就会出现下面的错误:
巨大八爪鱼
一派护法 十九级
3楼
发表于:
2015-12-5 14:39
回复
在WinMain函数前,加入如下代码:
#pragma comment(lib, "Comctl32.lib")
#pragma comment(linker, "\"/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
巨大八爪鱼
一派护法 十九级
4楼
发表于:
2015-12-5 14:39
回复
巨大八爪鱼
一派护法 十九级
5楼
发表于:
2015-12-5 14:40
回复
最后,编译并运行程序。
可见程序已经拥有了XP风格控件:
巨大八爪鱼
一派护法 十九级
6楼
发表于:
2015-12-5 14:41
回复
本文参考资料:
http://www.bianceng.cn/Programming/cplus/201306/36676.htm
巨大八爪鱼
一派护法 十九级
7楼
发表于:
2015-12-5 16:47
回复
这是微软官方对这个问题给出的解答:
https://msdn.microsoft.com/en-us/library/windows/desktop/bb773175%28v=vs.85%29.aspx
翻译:Comctl32.dll第六版无需下载,它是一个Windows自带的库文件。在manifest里面声明一下就能在程序中启用。
巨大八爪鱼
一派护法 十九级
8楼
发表于:
2016-5-24 16:10
回复
【补充】
如果编译的程序需要在XP系统下运行,最好在主函数里调用一下InitCommonControls();,否则控件可能在XP下完全无法显示,而Win7上却正常。
例如:
详见:
https://zh.arslanbar.net/post.php?t=24058
回复帖子
内容:
图片
视频
表情
用户名:
您目前是匿名发表
验证码:
看不清?换一张
(快捷键:Ctrl+Enter)
本帖信息
点击数:
557
回复数:
7
评论数:
?
作者:
巨大八爪鱼
最后回复:
巨大八爪鱼
最后回复时间:2016-5-24 16:10
精品区:未分类
本吧精品帖子
【教程】用三行C++代码讓Win32程序擁有XP風格控件,无需manifest文件或24资源
【教程】讓Win32程序擁有XP風格控件
公告板
【公告】關於Purasbar網站的一些聲明
【公告】阿斯蘭侃吧(Arslanbar)試用新logo
【公告】阿斯兰侃吧啟用新客服電話號碼
【公告】關於阿斯蘭侃吧(Arslanbar)再度恢復及開始試運營的公告
【新功能】现在可以直接在发帖框中粘贴图片啦!
【新功能】搜索框提示功能上線了
【公告】第十五次補丁包安裝完畢
【公告】從現在開始,管理員將停止審批會員
【公告】阿斯兰侃吧现在开始支持简繁混合搜索
【公告】阿斯蘭侃吧啟用https訪問
【公告】从今天开始,本站实行主题编号制
【新功能】图片缩放功能上线了
©2010-2024 Arslanbar Ver2.0
▲
除非另有声明,
本站
采用
知识共享署名-相同方式共享 3.0 Unported许可协议
进行许可。