草庐IT

c++ - 如何使用对话框参数?

我有一个预制的模板资源对话框,我想使用DialogBoxParam来显示它,但是我在网上找不到任何好的例子。该对话框是一个简单的登录对话框,所以有人可以解释如何构建我的lpDialogFunc以及在dwInitParam中放置什么吗? 最佳答案 您已将此问题标记为C++,但未指定任何特定框架(例如ATL或MFC)。因此,本着为问题提供c++/OOP答案的精神,在不使用框架的情况下,首先要做的是创建一个类来包装对话框,并为对话框过程提供一种方法可靠地检索指向类的指针。WindowsAPI是CAPI,不能直接调用类成员,因此有必要创建静

windows - 'net stop spooler' 失败,退出代码为 259

我使用C++程序中的CreateProcess启动“netstopspooler”。它失败,退出代码为259。有人知道那个错误代码是什么意思吗?此外,如果有人可以给我一个链接,指向一些关于此命令可能的错误代码及其含义的文档,我将不胜感激。 最佳答案 259不是错误,而是它的STILL_ACTIVE如果您传递给它的进程句柄与尚未终止的进程相关(因此没有退出代码),则GetExitCodeProcess返回).如果您想在获取退出代码之前等待它退出,请在进程句柄上调用WaitForSingleObject()。

windows - regsvr32 和标准输出

regsvr32实用程序禁止标准输出。例如:STDAPIDllRegisterServer(void){std::cout执行时:regsvr32my.dll标准输出中没有任何内容(显示成功消息框)。有没有办法让标准输出出现? 最佳答案 regsvr32.exe它是一个Windows应用程序。它没有控制台。printf或std::cout不会显示任何文本。如果你坚持要显示一些东西,你可以自己创建控制台。在文本输出之前调用以下行。AllocConsole();freopen("CONOUT$","w+t",stdout);

windows - SPI_SETDISABLEOVERLAPPEDCONTENT

我有功能functionbgSetDisableOverlappedContent(CAA:BOOL;varErrorCode:DWORD;ErrorText:string):Boolean;beginerrorCode:=ERROR_SUCCESS;ErrorText:='';ifnotGetOSVersion>=60thenExit;Result:=SystemParametersInfo(SPI_SETDISABLEOVERLAPPEDCONTENT,0,@CAA,0);ifnotResultthenbeginErrorCode:=GetLastError;ErrorText:=

c# - 在 Windows 上更改任务栏按钮颜色

同一应用程序的多个实例同时运行,并且由于每个实例都有多个窗口,因此用户很难在它们之间导航。我通过将不同应用程序实例的标题栏颜色设置为不同的值来帮助用户。例如,第一个启动的应用程序实例的所有窗口的标题栏都是红色的,第二个实例的所有窗口的标题栏都是绿色的,等等。将应用程序实例的任务栏按钮颜色设置为我用于标题栏的颜色也会很有用。这可能吗?如果不是,那么我会对具有类似差异化效果的解决方案感到满意,例如设置任务栏按钮上文本的颜色,为其添加覆盖图标等。该解决方案应该适用于WindowsXP和更高版本的Windows。语言可以是C/C++、C#或Delphi。非常感谢您!

c - ProcessID困惑

我很困惑。为什么notepad.exe有三个不同的进程ID?1)Spy++说000000A48(嗯?)2)任务管理器说:26323)GetWindowThreadProcessId说:1744我想2632是在SetWindowsHookEx中使用的正确值(作为dwThreadId参数),但是如果GetWindowThreadProcessId返回其他内容,我如何找到正确的值? 最佳答案 一个进程只有一个唯一的进程ID。但是Spy++将值报告为十六进制,而任务管理器将其报告为十进制。现在,A48(十六进制)等于2632(十进制)。另一

c++ - 从 Windows 服务启动子进程

我在c++中有一个XMLRPC窗口服务。我需要从它启动子进程,如果Windows服务收到请求并且进程已经存在我需要结束那个特定的子进程并再次启动它。我不需要等待进程在启动后退出但是一旦它启动并开始它应该做的事情我需要通知主进程。当子进程结束时,它需要通知启动它的服务,以便我可以维护一个已存在进程的列表。我知道我可以用CreateProcess做到这一点但是,一旦子进程到达特定事物,我该如何处理通知的各个方面。 最佳答案 调用CreateProcess后,跟踪进程句柄。您可以使用它来查看进程是否有exitedornot,并调用Term

c++ - 子窗口不捕获 WM_MOUSEWHEEL 事件

我有一个包含子窗口的主窗口。在child中我需要处理鼠标滚轮滚动,但是我滚动鼠标滚轮消息到主窗口的位置并不重要。我用Spy++得到了这些结果。不知道为什么会这样,但我认为子创建有问题,我的代码:m_window=CreateWindowEx(0,CustomTreeView::m_className.c_str(),NULL,WS_CHILD|WS_VISIBLE|WS_HSCROLL|WS_VSCROLL,x,y,width,height,parent,NULL,NULL,NULL); 最佳答案 WM_MOUSEWHEEL消息被发

C++ Windows 十进制到 UTF-8 字符转换

我一直在使用下面的函数将unicode字符的十进制表示形式转换为C++中的UTF8字符本身。我目前拥有的功能在Linux/Unix系统上运行良好,但它在Windows上不断返回错误字符。voidGetUnicodeChar(unsignedintcode,charchars[5]){if(code>6);chars[0]=0xC0|(code&0x1F);chars[2]='\0';}elseif(code>6);chars[1]=0x80|(code&0x3F);code=(code>>6);chars[0]=0xE0|(code&0xF);chars[3]='\0';}elseif

c++ - TabCtrl_InsertItem : do we need to keep memory of the text alive?

对于TabCtrl_InsertItem,我们需要保留pszTextmember指向有效内存还是操作系统会复制文本以便我们可以立即清除文本?TCITEMtcItem={TCIF_TEXT};CStringstrText;for(inti=0;i我们如何才能知道对于这个函数和future的其他函数哪个是正确的?我在MSDN中找不到它。 最佳答案 操作系统会将字符串复制到内部数据结构中。您不需要维护支持字符数组。您可以在函数调用完成后立即释放它。通常,任何接收字符串的WindowsAPI函数都是这种情况。没错,MSDN文档中没有明确说明