jjzjj

c++ - MFC:混淆 ON_COMMAND 函数?

好的,这就是这个函数..ON_COMMAND(ID_COLOR_RED,OnColor)ON_COMMAND(ID_COLOR_GREEN,OnColor)ON_COMMAND(ID_COLOR_BLUE,OnColor)...voidCMainWindow::OnColor(){UINTnID=(UINT)LOWORD(GetCurrentMessage()->wParam);m_nCurrentColor=nID_ID_COLOR_RED;}所以,这里CurrentMessage的wParam的LOWORD应该包含Message的ID,没关系,但是m_nCurrentColor=n

C++:如何使 MessageBox 居中?

将VisualStudioC++与MFC结合使用。如何将MessageBox置于其父窗口的中心?目前它以桌面为中心。 最佳答案 您需要安装一个钩子(Hook)并在创建时更改对话框位置。intMessageBoxCentered(HWNDhWnd,LPCTSTRlpText,LPCTSTRlpCaption,UINTuType){//CentermessageboxatitsparentwindowstaticHHOOKhHookCBT{};hHookCBT=SetWindowsHookEx(WH_CBT,[](intnCode,WP

windows - 在 MFC 中注册文件关联在 Windows 7 上不起作用

我遇到的这个问题很容易重现。使用VisualStudio2010创建一个文件扩展名为.xyz的基本MFCMDI应用程序。应用程序默认代码很容易通过调用注册文件关联://EnableDDEExecuteopenEnableShellOpen();RegisterShellFileTypes(TRUE);问题是在RegisterShellFileTypes(TRUE)内部,下面的调用失败了:if(!_AfxSetRegKey(strFileTypeId,strFileTypeName))continue;//justskipit该文件显然没有被注册,也没有采用应用程序指定的文件图标。我想要

c++ - WM_MENUSELECT 未在 CFrameWndEx 窗口中处理

我试图在基于CFrameWndEx主框架窗口的VS2008(和VS2010)SDI项目中处理WM_MENUSELECT消息。我从VS2008向导(单个文档、“MFC标准”、“使用经典菜单”选项)创建了一个简单的项目,结果类似于(添加WM_MENUSELECT消息后):classCMainFrame:publicCFrameWnd{///...public:afx_msgvoidOnMenuSelect(UINTnItemID,UINTnFlags,HMENUhSysMenu);};和IMPLEMENT_DYNCREATE(CMainFrame,CFrameWnd)BEGIN_MESSA

c++ - 使用C++和MFC进行动态图绘制

我正在使用Windows的C++MFC应用程序,这些应用程序从不同的传感器收集信息并在图表中动态绘制它们。我的目标是更新此应用。它当前将此http://www.codeproject.com/Articles/425/A-2D-data-visualisation-class用作2D图形绘图仪。问题在于该资源确实很旧,我想知道某些foss/opensource2D图形绘图库是否更好。例如,我看过一些付费的(图表主管/gigasoft图表库)。我发现的唯一的敌人是gnuplot。但是据我了解,gnuplot主要用于生成固定图,并且不提供图本身的允许信息。如果您对此主题有任何建议,我将非常

c++ - 是否可以创建一个由透明浏览器组件组成的无窗口 mfc c++ 应用程序?

是否可以创建一个无窗口的mfcc++应用程序(将在xp上运行),它由透明浏览器组件(背景默认透明)和一个按钮(例如关闭该应用程序)组成? 最佳答案 您可以试试下面的代码,但是在选择或调整大小时仍然会出现伪影:privatevoidWebCtrl_Loaded(objectsender,RoutedEventArgse){varhRef=newHandleRef(null,WebCtrl.Handle);intstyle=GetWindowLong(hRef,GWL_EXSTYLE);if((style&WS_EX_TRANSPARE

windows - SetDefaultItem 的作用是什么?

我只想知道DefaultItem的功能是什么,一般的MenuItem和它有什么区别,除了粗体...谢谢... 最佳答案 在MSDNMenuDocumentation中查找导致这个答案。Asubmenucancontainonedefaultmenuitem.Whentheuseropensasubmenubydouble-clicking,thesystemsendsacommandmessagetothemenu'sownerwindowandclosesthemenuasifthedefaultcommanditemhadbee

windows - CSingleLock 实现在 Windows 7 上工作正常,但在 Win XP 上以死锁结束

我尝试用自己的CSingleLock替换MFC的CSingleLock实现,但现在我在WindowsXP上遇到了一个死锁,我在Windows7上没有,而且我在任何一个操作系统上都没有MFC的CSingleLock,除了查看每个在我的应用程序中锁定和解锁,我的实现中缺少什么:classCCriticalSection{CRITICAL_SECTIONm_cs;public:CCriticalSection(){InitializeCriticalSection(&m_cs);}~CCriticalSection(){DeleteCriticalSection(&m_cs);}voidLo

c++ - Windows XP中如何判断一个驱动器是否支持硬链接(hard link)?

我找到了以下解决方案来确定驱动器是否支持硬链接(hardlink):CStringstrDrive=_T("C:\\");DWORDdwSysFlags;if(GetVolumeInformation(strDrive,NULL,0,NULL,NULL,&dwSysFlags,NULL,0)){if((dwSysFlags&FILE_SUPPORTS_HARD_LINKS)!=0){//Hardlinkscanbecreatedonthespecifieddrive.}else{//Hardlinkscannotbecreatedonthespecifieddrive.}}然而,根据M

c++ - MFC Windows 菜单,自定义

我找不到在MFC中将各个View/文档/框架名称添加到“窗口”菜单的位置。CMDIFrameWndEx::GetWindowMenuPopup在顶级菜单中搜索与“Windows”菜单相关的ID_。并返回此子菜单。但它不会修改任何内容。我想我可以覆盖此函数以返回我自己直接处理的HMENU。但我真的很想知道MFC中的哪个函数将项目添加到这个“窗口”菜单。 最佳答案 菜单在CFrameWnd::OnUpdateFrameMenu中更新。这是一个未记录的方法,但是changed当CFrameWndEx添加到MFC时。这可能也很有趣:Howt