清泉逐流

做着努力,等待幸福到来
» 日志

[VC/MFC]让对话框对UPDATE_COMMAND_UI生效

时间 : 2012-02-24 17:19 标签 : VC  MFC  

  问题:一般情况下我们用UPDATE_COMMAND_UI来修改菜单的状态(enable/disable, check/uncheck, change text),但这个方法在一个基于对话框上的菜单却没有效果。

  void CTestDlg::OnUpdateFileExit(CCmdUI* pCmdUI)

  {

        pCmdUI->Enable(FALSE);

        pCmdUI->SetCheck(TRUE);

        pCmdUI->SetRadio(TRUE);

        pCmdUI->SetText("Close");

  //以上方法在MDI、SDI程序中都能起作用,在对话框中却没有效果,根本没有调用这个函数。

  }

查看全文 »

VC++编写最小化到托盘程序

时间 : 2012-02-24 12:36 标签 : VC  

  1、首先建立一个基于对话框的MFC程序;

  2、在资源中的Icon中导入一个自己喜欢的图标,ID命名为IDR_MAINFRAME,将先前的IDR_MAINFRAME的图标删除掉;

  3、在自己的Dialog头文件中定义一个变量 NOTIFYICONDATA m_nid,关于该结构体的具体信息可以查阅MSDN;

  4、添加消息响应函数OnInitDialog(),并在该函数中添加以下代码,这样程序一启动,就在托盘中显示出了自己应用程序的图标。

  //---------------------------托盘显示---------------------------------//

  m_nid.

查看全文 »

VC++中内存分配函数

时间 : 2011-11-02 13:59 标签 : VC  C++  

  1. 首先我们来看HeapAlloc:

  MSDN上的解释为:HeapALloc是从堆上分配一块内存,且分配的内存是不可移动的(即如果没有连续的空间能满足分配的大小,程序不能将其他零散的 空间利用起来,从而导致分配失败),该分配方法是从一指定地址开始分配,而不像GloabalAlloc是从全局堆上分配,这个有可能是全局,也有可能是 局部。函数原型为:

  LPVOID

  HeapAlloc(HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes);

  hHeap是进程堆内存开始位置。

  dwFlags是分配堆内存的标志。包括HEAP_ZERO_MEMORY,即使分配的空间清零。

  dwBytes是分配堆内存的大小。

  其对应的释放空间函数为HeapFree。  

  2. 再看GlobalAlloc:该函数用于从全局堆中分配出内存供程序使用,函数原型为:

查看全文 »
» 日志标签