汇编网首页登录博客注册
wukong的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
文章收藏

[2013-12-21 21:49] 获得对话框子窗口的信息(一)

点击查看原图
1 通过GetDlgItem(ID)获得控件
        CString strA,strB,strSum;
        GetDlgItem(EDT_A)->GetWindowText(strA);
        GetDlgItem(EDT_B)->GetWindowText(strB);

        strSum.Format("%d",atoi(strA)+atoi(strB));
        GetDlgItem(EDT_SUM)->SetWindowText(strSum);
2.通过GetDlgItemInt获得数据
UINT GetDlgItemInt( int nID, BOOL* lpTrans = NUL...
阅读全文 | 评论次数(0) | 浏览次数(691) | 所属类型(Win32)

[2013-12-19 20:35] 创建多个按钮响应同一个函数

创建多个按钮响应同一个函数
添加
BEGIN_MESSAGE_MAP(CDialogDlg, CDialog)
        //{{AFX_MSG_MAP(CDialogDlg)
        ON_WM_SYSCOMMAND()
        ON_WM_PAINT()
        ON_WM_QUERYDRAGICON()
        ON_WM_CLOSE()
        ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
        { WM_COMMAND, BN_CLICKED, (WORD)100, (WORD)200, AfxSig_vv,(AFX_PMSG)&OnButton2 },
        //}}AFX_M...
阅读全文 | 评论次数(0) | 浏览次数(617) | 所属类型(Win32)

[2013-12-19 18:49] OnOK and OnCancel

MFC默认建立的Dialog按Esc响应OnCancel,回车响应OnOK,都会关闭对话框,只要重载OnOk和OnCancel函数即可,但此时点击关闭按钮无法关闭窗口,原因是它调用OnCancel,还需要再重载OnClose函数。

总结OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别

第一,OnOK()和OnCancel()是CDialog基类的成员函数,而OnClose()和OnDestroy()是CWnd基类的成员函数,即WM消息响应函数。从应用程序结构的角度,拿对话框来说,红色的X对应的是CWnd,而处于对话框中的“确定”、“取消”按钮...
阅读全文 | 评论次数(0) | 浏览次数(735) | 所属类型(Win32)

[2013-12-16 20:23] accelerator

1.如果是MFC程序,并且是文档/视结构,只有默认ID为IDR_MAINFRAME的加速键表被加入。如果要装入另外ID的加速键表,要在CYourApp::InitInstance()中这样写
m_pMainWnd->LoadAccelTable(MAKEINTRESOURCE(ID_YOUR_ACCELERATOR));

2.如果是基于Dialog的MFC程序,这样写:
class CYourApp : public CWinApp
{
  ...
  HACCEL hAccel;
}

CYourApp::InitInstance()
{
  ...
  hAcc...
阅读全文 | 评论次数(0) | 浏览次数(677) | 所属类型(Win32)

[2013-12-16 20:20] 重绘菜单

重绘菜单
1.添加ON_WM_MEASUREITEM()消息
void CMainFrame::OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct) 
主要负责菜单的高度和宽度
typedef struct tagMEASUREITEMSTRUCT {   // mis 
    UINT  CtlType;      // type of control 
    UINT  CtlID;        // combo box, list box, or button identifier 
  ...
阅读全文 | 评论次数(0) | 浏览次数(981) | 所属类型(Win32)

[2013-12-15 19:57] 上下文菜单

WM_CONTEXTMENU消息 用来响应鼠标右键消息, 它响应的不是鼠标右键按下消息,也不是鼠标右键弹起消息

而是鼠标右键 依次按下弹起后触发的消息。

 

         因此,若程序还响应了鼠标右键按下的消息OnRButtonDown,且在此响应函数中有模特对话框出现的话,则不会响应WM_CONTEXTMENU消息。

         比如,有AfxMessageBox(L"Right Down"); 模特对话框出现在右键按下响应函数中, 则关闭此模特对话框后,不在响应右键菜单消息。

 

         原因在于:

         右键菜单 ...
阅读全文 | 评论次数(0) | 浏览次数(637) | 所属类型(Win32)

[2013-12-14 19:40] 菜单编程(三):系统菜单

函数功能:该函数允许应用程序为复制或修改而访问窗口菜单(系统菜单或控制菜单)。
  函数原型:HMENU GetSystemMenu(HWND hWnd,BOOL bRevert);
  参数:
  hWnd:拥有窗口菜单拷贝的窗口的句柄。
  bRevert:指定将执行的操作。如果此参数为FALSE,GetSystemMenu返回当前使用窗口菜单的拷贝的句柄。该拷贝初始时与窗口菜单相同,但可以被修改。
  如果此参数为TRUE,GetSystemMenu重置窗口菜单到缺省状态。如果存在先前的窗口菜单,将被销毁。
  返回值:如果参数bRevert为FALSE,返回值是窗口菜单的拷...
阅读全文 | 评论次数(0) | 浏览次数(671) | 所属类型(Win32)

[2013-12-14 19:29] 菜单编程(二)

手动添加菜单
createMenu创建顶层菜单
createpopmenu创建子菜单
appendmenu把子菜单挂接到顶层菜单(按次序挂接,insertmenu可以指定位置挂接,这是区别)
或者添加菜单项
detch是把对象和句柄分离,在局部变量时,可以保存资源不被销除

AppendMenu( UINT nFlags, UINT nIDNewItem = 0, LPCTSTR lpszNewItem = NULL );
该函数在指定的菜单条、下拉式菜单、子菜单或快捷菜单的末尾追加一个新菜单项。

        //动态添加菜单
        CMenu menu;
        menu.Create...
阅读全文 | 评论次数(0) | 浏览次数(661) | 所属类型(Win32)

[2013-12-12 19:42] MFC 菜单编程(一)

1.出现在窗口顶层的菜单栏叫顶层菜单,其中的命令叫顶层菜单项,下拉菜单,上下文菜单,系统菜单。
2.创建菜单:添加一个菜单模板;(资源文件)然后为每一个菜单项添加消息函数。命令消息 

ON_COMMAND(IDM_PHONE1, OnPhone1) ,菜单和工具栏的消息。 
3. 当对某菜单添加消息响应函数时, 4 个类的消息响应优先次序分别是: a 

.View;b.CDOC;c.CMainFrame.d.CWinAPP . 
4.GetSystemMetrics(SM_CXMENUCHECK),
GetSystemMetrics(SM_CYMENUCHECK)// 获得...
阅读全文 | 评论次数(0) | 浏览次数(646) | 所属类型(Win32)

[2013-12-07 21:13] VC中的路径及裁减区

在VC画图中路径层,相当于定义一个区域,在这个区域内进行绘图并不影响该区域内原有图像,即在定义的路径区域内进行的绘图操作是无效的(BeginPath和EndPath之间),它只是确定路径的区域,在这之后调用CDC的路径操作函数才有效,而且所有的绘图操作都可确定路径,如TextOut,MoveTo,LineTo都可以.

    由于BeginPath和EndPath之间我们的绘图操作无效,那么路径层它的作用是什么呢,实际上它的作用主要是和裁剪区域进行的合作工作,如果有用PS的人应该知道蒙板,路径层的作用就相当于蒙板的作用,起着对路径区域的保护,当它和裁剪区域配合时,则可以决定裁剪区域的真正...
阅读全文 | 评论次数(0) | 浏览次数(612) | 所属类型(Win32)
『 查看更多文章 』