摘要:前几天发现自己的程序中使用非模态对话框,Debug版本有警告提示如下: Warning: calling DestroyWindow in CWnd::~CWnd OnDestroy or PostNcDestroy in derived class will not be called 由于是Warnning,就没有太在意,后来随意上网一找发现,这个问题还是很严重的问题。 最后,发现有些基本问题我还没有搞清楚。同时在这个过程中,也学习了不少新东西,网上关于这个问题的资料很多,感觉真正把问题讲清楚的不多。今天我就来个总结,同时,也把网上有些人的疑问给解答下,更重要的是自己以后忘记了,...
阅读全文
随笔分类 - MFC
摘要:为编辑框添加 int变量的时候下面有2空可以填写最大值与最小值;或者自己添加代码DDV_MinMaxInt(pDX, m_nPort, 1, 65535);但是这个不一定要工作。解决方法:给编辑框添加一个失去焦点(killfocus)的消息,在里面UpdateData(TRUE)一下就搞定。原因是当失去焦点时候,同步一下窗体和相关变量的值,这样子系统才能正确判断是否超过设定的范围。不过又出现另一个原因,只要你输入的值不在 设定范围里,那么你的焦点就不能离开控件,因为会一直弹窗提示的。解决方法:去掉DDV_MinMaxInt(pDX, m_nPort, 1, 65535),在killfocus函
阅读全文
摘要:WinExec()ExitWindowsEx()GlobalMemoryStatus()GetSystemInfo()GetSystemDirectory()GetWindowsDirectory()GetTaskmanWindow() //user32.dll中 获取任务栏窗口句柄OpenProcessToken()打开一个进程的访问令牌GetCurrentProcess()获取本进程句柄LookupPrivilegeValue()修改进程权限AdjustTokenProvileges()通知WindowsNT修改本进程权利CreateRectRgn()CreateEllipticRgnIn
阅读全文
摘要:1.先建立一个对话框MFC应用程序,然后在工具箱里面把Tab Control控件放到对话框中的合适位置上。再在对话框类中,声明一个CTabCtrl变量:CTabCtrl m_tab;变量m_tab用来与对话框中的Tab Control控件交互,为此要在DoDataExchange函数中加入DDX_Control语句:DDX_Control(pDX, IDC_TAB1, m_tab);IDC_TAB1是Tab Control控件的ID。2.建立两个对话框程序,用来当做Tab Control控件的两个页。别忘了把Style改为Child,Border改为None。然后就可以在上面加其他控件了。接着
阅读全文
摘要:函数功能:该函数把一个消息发送给指定的对话框中的控件。 函数原型:LONG SendDlgItemMessage( HWND hDlg, // handle of dialog box int nIDDlgItem, // identifier of control UINT Msg, // message to send WPARAM wParam, // first message parameter LPARAM lParam // second message parameter ); 参数: hDlg:指定含有控件的对话框。 nIDDigItem:指定接收消息的控...
阅读全文
摘要:若XXView继承的是CListCtrl类,那么直接调用函数CListCtrl &m_listctrl = GetCtrl();即可获取视图类中ListCtrl的指针,插入数据通过m_listctrl操作.若是CListCtrl控件的话,则需要自己定义控件变量.我看很多朋友是定义的lvcolumn结构体进行数据插入,因为这个功能较多,不过我觉得比较麻烦.所以我喜欢用下面的方法:int nIndex = m_listctrl.InsertColumn(m_listctrl.GetItemCount(), str);m_listctrl.SetItemText(nIndex, 0, str
阅读全文
摘要:首先看MSDN中的解释:CString::GetBuffer LPTSTR GetBuffer( int nMinBufLength ); throw( CMemoryException ); 返回值:一个指向对象的(以空字符结尾的)字符缓冲区的LPTSTR指针。 参数:nMinBufLength 字符缓冲区的以字符数表示的最小容量。这个值不包括一个结尾的空字符的空间。说明: 此成员函数返回一个指向CString对象的内部字符缓冲区的指针。返回的LPTSTR不是const,因此可以允许直接修改CString的内容。 如果你使用由GetBuffer返回的指针来改变字符串的内容,你必须在使用其它.
阅读全文
摘要:POSITION GetFirstSelectedItemPosition() const 如果函数执行成功,则返回条目的POSITION值,如果返回值为KULL,则表示当前列表视图控件中没有条目选中。 Int GetNextSelectedItem(POSITION& pos) const 如果函数执行成功,则返回列表视图控件中下一个被选中的条目索引。其中参数pos为将接收条目POSITION值的变量。注意:使用这两个函数的时候 ListCtrl最好是有LVS_FULLROWSELECT的扩展风格。
阅读全文
摘要:除了窗口类以外,还有成百上千种窗口风格供用户指定窗口的绘制及其行为。其中有 3种最重要的风格创建了对应3种最基本的窗口类型:重叠窗口、弹出窗口和子窗口。■ 重叠窗口(overlapped window),具有应用程序主窗口的全部特点。它的非客户区包括一个可伸缩的框架、菜单条、标题栏和最小化、最大化按钮。■ 弹出窗口(popup window),具有消息框或者对话框的全部特点。它的非客户区包括一个固定大小的框架和一个标题栏。■ 子窗口(child window),具有类似按钮控件的全部特点。它没有非客户区,窗口的处理过程负责绘制窗口的每个部分。///WS_POPUP WS_OVERLAPPED
阅读全文
摘要:学习MFC,最重要的一点是抽象地把握问题,不要刚开始就试着掌握很多MFC类,要学会“不求甚解”。 从理解和使用两个方面学习MFC,理解MFC应用程序的框架结构,而不是强迫记忆大量的类、函数及参数。 一般的学习方法是:先大体上了解MFC的概念、层次结构和基本规律后,从掌握的类入手,结合程序设计,由浅入深,循序渐进,日积月累。 刚开始学习MFC类时,只需知道类的一些掌握方法和外部接口,不必去了解它的内部如何实现细节,把他当作一个模块或者黑盒子来用,这就是一种抽象的学习方法。在学习一定程度后,在充分利用MSDN帮助文档对MFC深入的研究。
阅读全文

浙公网安备 33010602011771号