为什么我的编辑控件在我的win32 c应用程序中看起来很奇怪而不使
发布时间:2020-12-14 02:55:54 所属栏目:Windows 来源:网络整理
导读:我有这个程序,我创建了一个窗口,在里面,我添加了一个使用普通C(没有MFC或对话框)的编辑控件,编辑控件创建代码是 hWnd=::CreateWindowExA(NULL,//no extended style "EDIT",NULL,//no title WS_CHILD|WS_VISIBLE|WS_BORDER,x,y,Width,Height,hWndParent,(HMEN
我有这个程序,我创建了一个窗口,在里面,我添加了一个使用普通C(没有MFC或对话框)的编辑控件,编辑控件创建代码是
hWnd=::CreateWindowExA(NULL,//no extended style "EDIT",NULL,//no title WS_CHILD|WS_VISIBLE|WS_BORDER,x,y,Width,Height,hWndParent,(HMENU)id,(HINSTANCE) GetWindowLong(hWndParent,GWL_HINSTANCE),//the module instance NULL); 但渲染的控件看起来很难看…… 这就是我希望我的控件看起来像…… 我尝试调用InitCommonControlsEx并包含comctl32.lib但没有任何改变. 是否可以使用c / c(没有MFC或.NET之类的东西)来获得正常的vista样式控件.如果添加清单资源可以解决问题,那么我如何编写/生成一个清单文件并将其添加到我的exe? #include<Windows.h> #include <commctrl.h > #pragma comment(linker,""/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"") #pragma comment(lib,"comctl32.lib") HWND hwndEdit; LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wp,LPARAM lp) { switch(uMsg) { case WM_CREATE: hwndEdit = CreateWindow( "EDIT",/* predefined class */ NULL,/* no window title */ WS_CHILD | WS_VISIBLE | ES_LEFT | ES_AUTOHSCROLL|WS_BORDER,100,50,/* set size in WM_SIZE message */ hWnd,/* parent window */ (HMENU) 1,/* edit control ID */ (HINSTANCE) GetWindowLong(hWnd,NULL); /* pointer not needed */ return 0; break; case WM_CLOSE: ::PostQuitMessage(0);//quit application break; default: return ::DefWindowProcA(hWnd,uMsg,wp,lp); } return 0l; } int WINAPI WinMain(HINSTANCE hinstance,HINSTANCE hPrevinstance,char *cmd,int show) { INITCOMMONCONTROLSEX icc; icc.dwICC=ICC_ANIMATE_CLASS|ICC_NATIVEFNTCTL_CLASS|ICC_STANDARD_CLASSES; icc.dwSize=sizeof(icc); InitCommonControlsEx(&icc); char* tst="Simple edit control"; WNDCLASSEX mywindow; MSG msg; HWND hwnd; mywindow.cbClsExtra=0; mywindow.cbWndExtra=0; mywindow.hbrBackground=(HBRUSH)(COLOR_WINDOW+1); mywindow.hCursor=LoadCursor(NULL,IDC_CROSS); mywindow.hIcon=LoadIcon(NULL,IDI_APPLICATION); mywindow.hInstance=hinstance; mywindow.lpfnWndProc=WndProc; mywindow.lpszClassName="Test"; mywindow.lpszMenuName=NULL; mywindow.style=0; mywindow.cbSize=sizeof(WNDCLASSEX); mywindow.hIconSm=NULL; if(!RegisterClassEx(&mywindow)) MessageBox(NULL,"Window Registration failed","Error occured",NULL); hwnd=CreateWindowEx(WS_EX_TOPMOST,"Test","My window",WS_OVERLAPPEDWINDOW,900,300,400,350,hinstance,tst); if(hwnd==NULL) MessageBox(NULL,"Window creation failed","error",NULL); ::ShowWindow(hwnd,SW_SHOW); ::UpdateWindow(hwnd); while (1) //NOTE: Game engine type message loop { Sleep(1); if ( PeekMessage(&msg,PM_REMOVE) ) { if (msg.message == WM_QUIT) break; TranslateMessage( &msg ); DispatchMessage ( &msg ); } } return msg.wParam; } 更新:我更新了我的项目以使用unicode charset / libraries,现在视觉样式正在工作,除了编辑控件…看看.. ?我使用样式进行编辑控制WS_CHILD | WS_VISIBLE | ES_AUTOHSCROLL | ES_NOHIDESEL 解决方法
启用视觉样式:
http://msdn.microsoft.com/en-us/library/bb773175.aspx
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 1. windows 下redis数据库的安装
- windows – 如果长时间在大量DC上设置-strict,如何正确删除
- windows – 从命令行创建一个无声的mp3
- windows – 如何为单台机器添加多个私有IP地址?
- Windows Server 2016-域站点链接及复制时间调整
- winapi – Windows的FindFirstFile()函数中的错误?
- windows-server-2008 – 病毒是否可以通过RDP连接使用的网络
- 命令行 – MSTest.exe没有复制所有需要的项目DLL?
- 如何在Windows任务栏中删除多个emacs实例
- windows-server-2008 – 在DC上安装KMS ……好主意还是坏主
推荐文章
站长推荐
- windows – 如何通过HTTP从Internet检索文件?
- windows-7 – 自动安装Microsoft Update实用程序
- Windows Phone 7 – 如何在LongListSelector中包
- windows – 在服务器操作系统升级中跳过两个版本
- Monogame Windows 8错误 – 部署失败,因为无法将
- 那些好用的阅读软件(Windows & Android)
- 在基于Windows的VPS中从Java访问Ubuntu服务器中托
- Microsoft Exchange Retention Policy
- windows-phone-7 – 获取当前播放的歌曲列表wind
- 装配中的Windows音频
热点阅读