草庐IT

c# - C/C++/C# 设置窗口位置 : Window on top of others

我希望有人给出一个工作示例SetWindowPos关于如何使用C/C++/C#使窗口“最顶层”(位于最顶层并停留在那里)。提前致谢! 最佳答案 C/C++://Thisdoesn'tsizeormovethewindow,justmakesittop-most.SetWindowPos(hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE); 关于c#-C/C++/C#设置窗口位置:Windowontopofothers,我们在StackOver

c++ - 有人可以帮助发现我的低锁定列表中的错误吗?

我在32位Windows上用C++编写了一个低锁列表。我在使用关键部分方面取得了很大的进步,但我希望有人能理智地检查我所做的是否正确,并且我所做的没有任何错误:#ifndef__LOW_LOCK_STACK_H_#define__LOW_LOCK_STACK_H_templateclassLowLockStack{protected:structEntry{Entry*pNext;T*pData;};unionHeader{__int64m_XChg;struct{Entry*m_pNext;__int16m_Depth;__int16m_Counter;};};Headerm_Hea

c# - 像 Winspector Spy 一样拖放

我想知道是否有人可以深入了解如何在WinspectorSpy中实现窗口选择器。基本上,我想提供一个面板,我可以将鼠标放在上面,拖到另一个进程窗口(或子窗口)并从中获取类似HWND的内容。理想情况下,我会在C#中执行此操作,但如果只能通过包装CAPI来实现,那么我可以在C++中执行此操作。我弄乱了DragDrop事件并在C#中按下鼠标调用DoDragDrop,但不确定这是否能给我想要的东西。只获取鼠标的全局X/Y位置并在该位置找到最顶层的窗口会更容易吗?是否有一个API可以自动为我提供x、y参数?编辑:刚刚发现WindowFromPoint对于后一个问题 最佳

c++ - 程序崩溃并显示 0xC000000D 并且没有异常 - 我该如何调试它?

我有一个使用第三方库的VisualC++9Win32应用程序。当使用一组特定参数调用该库中的函数时,程序崩溃并显示“异常代码0xC000000D”。我尝试附加VisualStudio调试器-没有抛出任何异常(既没有C++也没有类似访问冲突的结构),也没有调用terminate()。程序仍然默默地结束了。程序只是异常结束,而在调试器中却没有停止,这是怎么回事?如何定位问题? 最佳答案 这是STATUS_INVALID_PARAMETER,使用WinDbg追踪是谁扔的(即附加WinDbg,sxeeh然后g。

c++ - win32 c++ 在没有子类化的编辑控件中检测到 'enter'?

基本上我想要一个Enter来触发一条消息,当编辑控件聚焦并且用户按下enter时我可以捕捉到。网上所有的解决方案似乎都是关于子类化的,但我想知道是否有另一种解决方法?例如,我的按钮有一个标识符ID_BUTTON_SEND。这是我的想象;caseWM_COMMAND:switch(LOWORD(wParam))caseID_BUTTON_SENDif('enterwaspressed')dothiselsedefault...你明白了:)我读过http://support.microsoft.com/kb/102589但坦率地说,选项1对我来说意义不大。干杯

c++ - 原始输入替代键盘 Hook ?

快速提问--我正在阅读有关键盘Hook的文章,有人建议使用原始输入来执行此操作,但我还没有找到任何相关示例。例如我正在使用RAWINPUTDEVICErid[1];rid[0].usUsagePage=0x01;rid[0].usUsage=0x06;rid[0].hwndTarget=hWnd;rid[0].dwFlags=0;RegisterRawInputDevices(rid,1,sizeof(rid[0]));并且在应用程序自己的窗口中捕获WM_INPUT很好,但在应用程序外部则不行。这可能在应用程序之外还是您必须使用WH_KEYBOARD或WH_KEYBOARD_LL?MS

c++ - 在当前进程中 Hook API 调用?

如何Hook/重定向当前进程中加载​​的DLL中的函数(例如,来自Kernel32.dll的CreateThread)?(我无法控制哪些代码片段调用CreateThread,所以我不能只用其他代码来代替。)语言并不重要;我猜C/C++是最好的选择。更新:我忘了说:我不是在寻找需要将额外库捆绑到我的程序中的解决方案;我一直在寻找一种手动方式来进行Hook(例如通过重写函数的地址),而不是使用外部库来执行此操作。但是感谢那些提到外部库的人;抱歉,我没有早点说。 最佳答案 有用于此的MS库:Detours

c++ - 这个 WinMain() 声明中发生了什么?

我正在学习C++和针对WindowsAPI的编程。我的第一个“HelloWindowsAPI”程序只显示一个MessageBox()。但是,我有一些问题,我正在阅读的书没有解释。首先,这是程序://HelloWin32Program#includeintWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnShowCmd){MessageBox(NULL,"Thisgetsdisplayedinthemessage.","Thisisthetitlebarofthemessagedialog

c++ - 使用 GetDlgItemText() 函数时如何计算 LPWSTR 大小

我的要求很小我正在使用GetDlgItem()从文本字段中获取文本,但我在第四个参数(即缓冲区大小)中遇到问题。LPWSTRtxtbuff;GetDlgItemText(hwnd,IDC_EDIT1,txtbuff,50);//thefourthparameter(50)MessageBox(NULL,txtbuff,L"Errormessage",MB_OK)如何计算txtbuff的大小 最佳答案 您可以使用GetDlgItem获取控件的HWND和GetWindowTextLength以确定您的控件包含多少个字符。

c++ - 如何在 Windows 中制作任务栏(系统托盘)应用程序

我知道启动Windows应用程序的唯一方法是通过CreateWindow。不幸的是,没有windowstyle对于任务栏应用程序,我想知道如何制作一个。我确实找到了thisexplanation在C#中,但我正在寻找能够使用VC++2008编译的解决方案。有任何解决方案吗? 最佳答案 关键是Shell_NotifyIcon(正如其他用户建议的那样)。在标准情况下,您的应用程序应该至少有一个窗口(至少用于接收系统托盘通知消息)。可能是隐藏的。右键单击您的托盘图标,这是显示一种弹出菜单的好方法。我想你可以看看this.这个简单的程序演示