草庐IT

cscope-win

全部标签

windows - 突出显示 Win32 Edit 控件以指示它是现在要填充的控件

我有一个Win32GUI应用程序,它有几个编辑控件(普通的旧“EDIT”类名)。逻辑是用户要填充应用选择的编辑框。为了更清楚现在要填充哪个,我想以某种方式突出显示“当前”编辑框。然后,当用户完成输入并要求应用程序继续时,编辑框必须再次变为“普通”状态。理想的方法是用一种选择的颜色来绘制它的背景。我怎样才能实现这个或类似的选择——也许我可以暂时替换用于绘制控件的画笔?如果无法使用编辑控件,那么从Win2k开始的Windows中有哪些可用的替代控件? 最佳答案 您可以处理WM_CTLCOLOREDITnotification在编辑控件的

windows - 如何在从 Win32::Process 启动的 Perl 进程中获取输出?

我有一个Perl脚本,它通过Win32::Process在新控制台中启动另一个Perl脚本如下:Win32::Process::Create($ProcessObj,"C:\\Perl\\bin\\perl.exe","$path_to_other_perl_script",0,NEW_CONSOLE,".");$ProcessObj->Suspend();$ProcessObj->Resume();$ProcessObj->Wait(0);问题是,在创建的新控制台中没有标准输出。如果我不使用新的控制台选项,脚本会在后台静默运行。如果我使用cmd.exe启动Perl脚本,我可以很好地看

windows - 让我的 MFC 对话框在其控件之前接收击键事件(MFC/Win32 相当于 WinForms "KeyPreview")

我有一个包含十几个按钮、单选按钮和只读编辑控件的MFC对话框。我想知道用户何时在该对话框中按下Ctrl+V,而不管哪个控件具有焦点。如果这是C#,我可以设置KeyPreview属性,我的表单将在各个控件之前接收所有击键-但我如何在MFC对话框中执行此操作? 最佳答案 JTeagle是对的。您应该覆盖PreTranslateMessage()。//ExampleBOOLCDlgFoo::PreTranslateMessage(MSG*pMsg){//Addyourspecializedcodehereand/orcallthebase

windows - 如何在win7中添加 'enhancement'声音过滤器?

在Windows7中,如果右键单击任务栏中的扬声器图标,单击播放设备,打开其中一个设备选项卡的属性,然后单击增强选项卡,则会得到一个过滤器列表(“低音增强”等)可以应用于该声音设备。如何在这里注册我自己的自定义过滤器?请注意,我不是IHV-涉及未签名驱动程序等的可怕黑客攻击是可以接受的,因为这将主要供我自己使用。 最佳答案 如果您是音频IHV,请使用您的INF注册它们。可以找到它们的引用页here.请注意,要与Windows一起使用,sAPO必须经过签名,否则它们不会加载到音频引擎中。要对sAPO进行签名,您需要遵循WHQL签名要求

windows - 在 Vista/Win7 上使用 WMI 检查夏令时

如何确定我使用的计算机是否实行夏令时?(最好使用WMI)根据thisarticleatTechNet,我可以查询SELECTDaylightInEffectFROMWin32_ComputerSystem,但属性DaylightInEffect在Vista或Win7上不受支持。由于我的程序将在各种系统(XP、Vista、7)上运行,我希望能找到一些可移植的方法。 最佳答案 记录的受支持操作系统列表不准确,当我尝试时这在Win7上工作正常。我想不出任何其他操作系统不支持它的原因,使用Win32API(GetTimeZoneInform

c# - Win32 浏览文件夹对话框 : wrong folder returned when user creates a new folder

我注意到浏览文件夹对话框中似乎有一个错误:打开带有“新建文件夹”按钮的新样​​式浏览文件夹对话框。(例如.NETFramework中的FolderBrowserDialog类,或Win32C++中的SHBrowseForFolder)。单击“创建新文件夹”按钮创建一个新文件夹。为新文件夹键入一个名称。输入完新文件夹名称后,请勿按Enter键或单击任何内容来停止编辑。当光标仍在闪烁/编辑框仍处于事件状态时,单击“确定”按钮。您必须非常快速地单击“确定”按钮。对话框不会返回文件夹的新名称给程序,而是返回“新文件夹”目录。例如,C:\NewFolder而不是用户输入的内容,例如C:\MyAp

windows - 是什么决定 RegisterTypeLib 是写入 win32 还是 win64?

我正在处理两个基于ATL的COM项目。两者都实现DllRegisterServerSTDAPIDllRegisterServer(void){//registersobject,typelibandallinterfacesintypelibreturn_Module.RegisterServer(TRUE);}最终调用::RegisterTypeLib(pTypeLib,bstrPath,szDir);在atlbase.h:6516中。但由于某种原因,此调用使其中一个项目创建HKEY_CLASSES_ROOT\TypeLib\\\0\win64在Windows732位上使用regsv

windows - Win32 Event 对象是递归互斥体吗?

我在MSDN上查了下,Mutexcouldbelockedtwice,但是没有任何关于recursiveacquirethesameeventobjecttwiceinathread.我们可以在同一个线程中两次锁定win32事件吗?编辑:Lock事件是什么意思?这里我假设事件是自动重置的。锁定:线程从WaitForXXX中唤醒(例如,WaitForSingleObject)解锁:线程正在调用SetEvent或PluseEvent。 最佳答案 互斥体与事件有着根本的不同。互斥锁用于提供互斥,以便一次只有一个线程可以访问资源,而事件只是

C++ Win 异步套接字。是否可以中断 select()

我有一个监听线程,等待使用select和FD_SET在几个套接字上读取。故事是。在某些时候,我将向池中添加另一个套接字,并且需要中止选择并重新初始化FD_SET数组以供选择。我有一个事件来指示池更改。但是select如何对我的事件使用react?select()此时使用timeval等待间隔为20秒,我不想将时间更改为较低的值。我不想频繁地重新启动select()超时...有什么办法可以中止选择吗?通知/重新启动选择并强制使用新套接字列表的正确方法是什么(至少一个套接字将被添加到池中)另一个问题-Msdn说“select函数确定一个或多个套接字的状态,必要时等待,以执行同步I/O。”这

c++ - Win32 窗口创建失败?

我进行了研究,但找不到答案。我找到的最接近的是“Cannotcreatewindow”,但它对我没有帮助。所以,就在这里!基本信息我有一个静态库和一个使用静态库的应用程序。我正确地将应用程序连接到静态库(包括目录、库目录、实际库依赖项等)。在静态库中,我有1个文件:IWindow.h。在应用程序中,我有3个文件:Main.cpp、WindowMain.h和WindowMain.cpp。IWindow.h定义了一个抽象窗口类:#ifndefIWINDOW_H#defineIWINDOW_H#includenamespaceNamespaceName{templateclassIWindo