动态库中按钮上的位图
嗨,codeprojecters 我有一个问题,我将如何在动态库中的按钮上放置位图,位图需要位于/themes/中,因为谁想要一个服装按钮 我尝试过的: 我试过 loadbitmap 等,但没有用 解决方案 如果LoadBitmap() 失败调用GetLastError() 以了解错误原因. 从文件加载位图(尤其是通过动态库)是一个坏主意,因为您必须对文件的路径进行硬编码.因此,我希望错误代码为 2 (ERROR_FILE_NOT_FOUND). 更好的解决方案是将位图作为资源包含在 DLL 中. 您有任何示例说明如何在按钮上显示图像吗?
88 2022-07-19
编程技术问答社区
如何创建和处理单选按钮消息C++windows。h
我想创建一个单选按钮菜单但不知道如何处理消息,我尝试的代码没有显示菜单.请帮帮我,在此先感谢 #include LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam ); static char *title = TEXT("Check Box"); int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { MSG msg ; WNDCLASS wc = {0}; wc.lpszClassName = TEXT( "Check Box" ); wc.hInstance = hInstance ; wc.hbrBackground =
84 2022-07-19
编程技术问答社区
如何在特定文件夹中禁用鼠标单击
我有一个名为 A 的文件夹.我只是希望用户不能在此文件夹上单击鼠标.这意味着 当用户双击文件夹 A 什么都不会发生.(它不应该打开那个文件夹). 当用户右键单击此文件夹时,不应打开上下文菜单. 等等 我尝试过的: 我尝试更改注册表项,但它适用于我不想要的系统级别. 解决方案 是什么阻止我使用 cmd 或第三方文件资源管理器访问文件夹和做我想做的事?试图通过操纵 GUI 来阻止对事物的访问从来都不是正确的解决方案,它总是会留下变通方法.如果您想限制对文件夹的访问,请使用身份验证正确执行.
130 2022-07-19
编程技术问答社区
倍数��打开�� 在“开始”菜单中快捷方式的关联菜单中。
我有一个 c++ 应用程序,我在开始菜单和创建快捷方式桌面.但是当用户右键单击开始菜单中存在的快捷方式时会出现问题.多个“打开"正在出现,而在桌面的情况下它按预期出现(如打开,属性..).有什么想法吗? 我尝试过的: 由于创建上下文菜单的代码是相同的,我认为这与代码无关.这是使用 CreateMenu shell 函数完成的. 解决方案 菜单条目存储在注册表中或使用 shell 扩展动态创建. 因为开始菜单和桌面的行为不同,所以似乎第二个选项适用于此.因此,您应该检查定义菜单项的位置(例如,为静态菜单项创建注册表项的安装程序以及使用 shell 扩展的代码). 有显示和编辑上下文菜单项的免费实用程序:ShellMenuView - 禁用/启用资源管理器的上下文菜单项[^] 和 ShellExView - 适用于 Windows 的 Shell 扩展管理器[^].这些可能有助于确定您添加其他项目的位置.
150 2022-07-19
编程技术问答社区
为什么win32 api停止显示窗口
我有一个 Win32 API windows 程序,它显示一个包含法语文档的 txt 文件.我可以单击一个单词,程序将读取一个字典文件,打开一个编辑窗口并显示英语定义、类型和时态.在多次请求后,程序停止显示结果.事实上,任何鼠标点击似乎都没有结果(包括点击工具栏和滚动条).单击鼠标右键应该会导致 MessageBox 出现,但不会出现. 在跟踪我的程序时,我看到程序的行为好像它正在运行,但没有弹出窗口,也没有出现任何显示的文本. 我重复使用编辑窗口并简单地调整它的大小并移动它(而不是删除它并为每个定义重新创建它),所以我尝试在需要时创建它并在完成时删除它,但没有任何变化. 我还在启动时创建了一个全局字体,并在需要时应用它,所以我在没有字体的情况下尝试了它,但又没有任何变化. 当我使用 CodeBlocks 编译时,程序在大约 45 个请求后停止显示.当我使用 DevCpp 编译时,大约 20 个请求后会出现问题.我还监控了 GlobalMemoryStatus,但似乎有很多内存,
210 2022-07-19
编程技术问答社区
我的C++程序在所有Microsoft windows版本中都能运行吗
你好 所以假设我用简单的 GUI 编写了简单的 win32 api 应用程序.. 它在以下版本的 windows {XP,Vista,7, 8/8.1,10 (32bit & 64bit)} 中工作吗? 我在 xp 版本中运行它没有什么问题,但我将它设置为 Visual Studio 2015 - Windows XP (v140_xp) 这个选项会影响我的程序速度吗? 我尝试过的: 我在 Windows xp(32 位)和 Windows 7(32 位)和 Windows 10(64 位)中对其进行了测试 工作正常 解决方案 理论上没有区别.但这假设所有系统都使用相同的硬件. 更改项目 CPU 设置(支持的最低 CPU)时可能存在差异,并且 32 位和 64 位构建之间存在差异.但这些都可以忽略不计. 使用 VisualStudio 设置支持的最低 Windows 版本会影响可以使用的 API 函数.选择 XP 时,Vista 或更高版本引入的所有
108 2022-07-19
编程技术问答社区
获取选定文件的文件信息win32 API
大家好, 我想实现一个在后台运行并获取有关用户选择的文件的信息的应用程序.我搜索了有关win32 API的信息,我的想法是使用鼠标挂钩来检测鼠标单击事件,然后获取我想要的文件信息.这是一个研究项目.我的基本想法是捕获用户想要打印输出的文件信息. 也许这是一个更广泛的话题.但是我想知道是否可以使用win32 API检测用户选择的文件信息? 任何指导将不胜感激!:-) 我尝试过的: 我发现这个是为了检测全局鼠标钩子. globalmousekeyhook 解决方案 也许你可以使用 通用项对话框. 它“支持对话框内事件的调用者通知,例如选择更改或文件类型更改.还使调用进程能够挂钩对话框中的某些事件,例如解析."
292 2022-07-19
编程技术问答社区
如何将文本日期和时间转换为ctime
我正在寻找一种将文本日期和时间转换为 CTime 的方法. 文本日期和时间可以是: 引用:"27 December 1999" “8:30:00" “20:30:00" 《1996年1月25日8点30分00秒》 “1996年1月25日8:30:00" "1/25/1996 8:30:00" 我尝试过的: 我写了以下函数,但是 ParseDateTime 总是失败. CTime DateTimeString2CTime(CString DateTimeStr) { COleDateTime t; if (t.ParseDateTime(DateTimeStr)) { CTime result(t); return result; } return (CTime)NULL; } 解决方案 ParseDateTime 应该适用于有效的日期字符串.出现问题的一个原因可能是您计算机上的区域设置不适合该日期格式.检查 - 可能使用 Parse
222 2022-07-19
编程技术问答社区
在后台打印程序C中向文档添加水印#
你好, 我正在使用 Windows API 函数来监视打印作业并能够获取文档名称、作业 ID、机器名称等信息.现在我通过成功使用作业 ID 暂停了当前的打印作业.现在的问题是我想在文档中添加水印并恢复打印机.我试图获取文档的完整路径,但 Windows API 打印中没有数据结构给出它.任何帮助将不胜感激. 我尝试过的: 试过 PRINTER_NOTIFY_INFO_DATA structre 打印队列类 PrintSystemJobInfo 类 解决方案 Google 是你的朋友: Google - c# 打印页面添加水印[^] 我相信你不能 通过 WinAPI 为打印的文档添加水印,因为打印队列与文件名列表不同.这是要打印的作业列表及其名称,但这并不意味着您可以访问已打印的文档列表....
372 2022-07-19
编程技术问答社区
如何从进程ID中查找多个窗口句柄
如何查找和枚举与单个 PID(进程 ID)关联的所有窗口句柄,例如,当程序使用来自单个进程的多个窗口时. 我尝试过的: 我发表了我认为是这个问题的答案(为了代码项目社区的利益).请随时发布更好的答案. 解决方案 以下代码根据给定 PID 定位所有窗口的句柄. void GetAllWindowsFromProcessID(DWORD dwProcessID, std::vector &vhWnds) { // find all hWnds (vhWnds) associated with a process id (dwProcessID) HWND hCurWnd = NULL; do { hCurWnd = FindWindowEx(NULL, hCurWnd, NULL, NULL); DWORD dwProcessID = 0; GetWindowThreadProce
482 2022-07-19
编程技术问答社区
进度条有什么替代品吗
先生, 我有一个对话框,有两个没有参数和没有返回类型函数,一个复选框,有两个按钮 recycler();//---------会清空回收站 Emptier();//---------将清空我用于学习的旧VS项目 当复选框(专门要求用户清空回收站)被选中时,recycler + Emptier 函数被执行,如果复选框未被选中,则 Emptier 函数被执行. int checked; case WM_COMMAND: if (LOWORD(wParam) == IDOK) { checked = IsDlgButtonChecked(hDlg, IDC_CHECK1); if (checked) { recycler(); Emptier(); } else { Emptier(); } break; } else if (LOWORD(wParam) == IDCANCEL)
112 2022-07-19
编程技术问答社区
使用滚动条创建窗口时出现问题
你好, 我在创建带有滚动条的窗口时遇到问题,在这里我正在创建带有滚动条的子窗口,但问题是滚动条处于禁用状态.有什么方法可以为子窗口创建滚动条. 我们在文档管理系统中,所以我们需要通过创建子窗口在查看器中显示文件(PDF),所以子窗口正在创建问题. 最后我想在 Win32 中解决. 我尝试过的: CreateWindowEx(0L,L"static",NULL,WS_CHILD| WS_VISIBLE | WS_CLIPSIBLINGS | WS_VSCROLL | WS_HSCROLL ,0,0,0,0,(HWND)pDataSurface,0,(HINSTANCE)GetWindowLong((HWND)pDataSurface,GWL_USERDATA),0); 解决方案 只有在设置视图大小和要滚动的数据量时才会启用滚动条.请参阅SetScrollInfo 函数 (Windows)[
148 2022-07-19
编程技术问答社区
在更改标题栏图标时,如何正确使用loadicon和makeintresource?
我正在使用 Code:Blocks c++ win32 开发一个项目.我在互联网上阅读了 LoadIcon 和 MAKEINTRESOURCE 的使用.但是,似乎我没有正确使用它们.我用颜料创建了一个图像并将其命名为“ico1".它的格式为“.png". 当我执行程序时,我在第 1 行收到错误代码“错误:在 '1002' 中请求成员 'png',它是非类类型 'int'." 下面是代码. /* Use default icon and mouse-pointer */ wincl.hIcon = LoadIcon (ico1.png, MAKEINTRESOURCE(IDI_ico1)); wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION); wincl.hCursor = LoadCursor (NULL, IDC_ARROW); wincl.lpszMenuName = NULL;
238 2022-07-19
编程技术问答社区
如何从头开始学习windows系统编程?
两年来,我一直在学习和练习 C/C++ 编程,现在我在这方面做得很好.但是现在我想用win32 api学习windows系统编程,我尝试了一些像Addison_Wesley_Windows_System_Programming这样的书,但它们对我没有用,因为我觉得里面写的东西非常复杂,高级且难以当我阅读第一章时,为初学者理解.我花了很多时间在网上寻找旨在教新手的教程和资源,但所有的努力似乎都失败了,最后我以绝望告终..!! 如果有人能指导我如何做到这一点并让我的生活再次变得轻松,我将非常感激......! 提前谢谢. 我尝试过的: 我已经尝试通过 www.tenouk.com/cnwin32tutorials.html 上的几本 windows 编程指南、书籍和一些在线教程,例如 tenouk 的 win32 教程,但对于初学者来说感觉很难! 解决方案方案 因为你想要轻松的生活,所以我只能建议避免 GUI 相关部分使用低级 Windows API 的东西,而改
158 2022-07-19
编程技术问答社区
从XML文件获取行号
我在 Visual Studio 2015 上使用 C++ 编写代码,并使用 Windows API 附带的标准 XML 库. 以下是我拥有的示例 XML 文件. 1.0.1 Sample XXX 2009-03-17 myCable myOrder 1 kool
234 2022-07-19
编程技术问答社区
在win32 DLL\u PROCESS\u DETACH下调用std::thread::join函数安全吗?
请看下面的代码片段//这些代码块定义在 DLL 项目中的单个 .cpp 单元下 ------------------ DLL -------------- static std::thread sendMessageThread; // define as local static to cpp //....// bool callFunction() { /// Some simple code without spawning any thread or fibers } void WINAPI OnEngineStart() { sendMessageThread = std::thread(callFunction); }; BOOL WINAPI DllMain(HINSTANCE hDll, DWORD fdwReason, LPVOID lpvReserved) { switch (fdwReason)
390 2022-07-19
编程技术问答社区
从windows客户端到linux服务器的RPC
我需要从 Windows 10 客户端 rpc 到 linux (RHEL 7) 服务器.我对 rpc 非常陌生(必须是 DCE RPC),所以如果你有一个工作示例(也许是你好世界?),那将非常有帮助.我需要这样的东西:教程 |Microsoft Docs[^] 但从 windows 客户端到 linux 服务器. 我尝试过的: 我看过这篇文章:RPC 从 Windows 到 linux[^] 说要使用 Samba,但是我有 samba 和它没有提到太多关于 RPC 的内容.任何帮助是极大的赞赏.谢谢! 解决方案 跨平台 RPC 实现起来并不容易.RPC 不是基于标准的,不同的平台处理事情的方式不同,这使得它们直接不兼容. 也就是说,除非您将库放在为您处理翻译和通信的客户端和服务器端之间. 您可能想查看 gRPC[^].它是一组库,应该可以让跨平台的 RPC 变得更容易. 不,我从来没有用过,所以不要问我例子.
162 2022-07-19
编程技术问答社区
如何使用纯WIN32 API调用为GUI应用程序创建调试控制台
我正在为一个 WIN32 GUI 应用程序创建一个调试控制台,我正在尝试以不同的方式来做这件事,但在我的一生中,我无法让它工作,它是如此简单的事情,但它正在推动我疯了.我知道这已经被问过一百万次了,一般的方法和我一直在使用的是这样的: AllocConsole(); freopen("CON", "r", stdin); freopen("CON", "w", stdout); freopen("CON", "w", stderr); 或者还有 OutputDebugString(TEXT("blah, blah blah"); 我猜想有太多的空闲时间/无聊/好奇,或者有些奇怪的意愿以最困难的方式做事,我想尝试用 AllocConsole、CreateFile、SetStdHandle 的纯 WIN32 调用来做不同的事情.无论通过 MSDN 进行多少谷歌搜索或搜索,我都无法使其正常工作.所有函数都返回成功,并且控制台在屏幕上打开,但没有输入/输出. 我尝试过的:
124 2022-07-19
编程技术问答社区
Listview\u getitem()宏在win32 api中返回空字符串
当我尝试从列表视图中删除所选项目时,“ListView_GetItem()"返回空文本.这里只是添加了我的代码,用于从列表视图中获取选定的文本项. LVITEM lvitem; int item = ListView_GetNextItem(listView, -1, LVNI_SELECTED); if (selectedItem != -1) { wchar_t str[1024]; lvitem.cchTextMax= 552; lvitem.mask= LVIF_TEXT; lvitem.iItem= selectedItem; lvitem.pszText= str; ListView_GetItem(listView, &lvitem); // Here Printing "lvi.pszText" text } 注意:我使用的是 Windows 10 操作系统.它对我来说工作正常.但它不适用于少数也具有相同 Windows
238 2022-07-19
编程技术问答社区