VC开发小知识

来源:互联网 发布:Linux ls相关命令 编辑:程序博客网 时间:2024/05/17 23:30

1MFC改变窗口大小

          在app类中BOOL CwindowsizeApp::InitInstance()的m_pMainWnd->ShowWindow(SW_SHOW);

     m_pMainWnd->UpdateWindow();之前加上m_pMainWnd->MoveWindow(CRect(100,100,300,600),FALSE);

禁止最大最小框在MainFrame类的CMainFrame::PreCreateWindow(CREATESTRUCT&cs)

中添加

    cs.style&= ~WS_THICKFRAME;//禁用Title上的按钮

    cs.style &= ~WS_MAXIMIZEBOX;//禁止窗口最大化

cs.style &= ~WS_MINIMIZEBOX;//禁止窗口最小化

    cs.style &= ~WS_SIZEBOX;//禁止改变窗口大小

2、隐藏状态栏、工具栏、系统菜单

    在MainFrame类intCMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)

1)//隐藏菜单栏

    m_wndMenuBar.ShowWindow(FALSE);

 

2)//删除状态栏

// if(!m_wndStatusBar.Create(this))

// {

//      TRACE0("未能创建状态栏\n");

//      return-1;      // 未能创建

// }

// m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT));

 

3)//去掉最大化、最小化、关闭按钮、标题栏

ModifyStyle(WS_CAPTION,0,SWP_FRAMECHANGED);

3MFC显示位图

//voidCogremfc20110719View::OnPaint()

//{

//  CPaintDC dc(this); // device context forpainting

//  // TODO: ¨²ä?ä|¬¨ª¨®?¡éä|¤¨ª¨¬¨°ä¨²?

//  // ?¡é̡®? CView::OnPaint()

//  BITMAP bm;

//  CBitmap bmp;//定义CBitmap类的对象

//  bmp.LoadBitmap(IDB_BITMAP1);//装入ID号为IDB_BITMAP1的位图

//  CDC memdc;//定义CDC类的对象

//  CRect rect;

//  memdc.CreateCompatibleDC(&dc);//创建与显示DC相容的内存DC

//  bmp.GetBitmap(&bm);

//  CBitmap*bmpold=memdc.SelectObject(&bmp);//DC

//  this->GetClientRect(&rect);

//  //DCDC,rect.left,rect.topSRCCOPY

//  dc.BitBlt(rect.left,rect.top,bm.bmWidth,bm.bmHeight,&memdc,0,0,SRCCOPY);

//  memdc.SelectObject(bmpold);

//  memdc.DeleteDC();

//  bmp.DeleteObject();

//  OnDraw(NULL);

//}

4、得到屏幕大小

    int x = ::GetDeviceCaps(hDC,HORZRES)/2;

    int y = ::GetDeviceCaps(hDC,VERTRES)/2;

 

5、常见错误

1、语法错误: 缺À少; (在*的前面)

缺少类型说明符假定为int注意: C++ 不支持默认int

缺少类型说明符假定为int注意: C++ 不支持默认int

原因:命名空间或类前缺少 class 标识符

6、注意事项:有启动界面时,不要把窗口初始化为最大化

 

7MFC去掉单文档的"无标题-"的方法

在MainFrm.cpp中,找到PreCreateWindow函数,增加如下代码。

// TODO: 在此处通过修改
// CREATESTRUCT cs 来修改窗口类或样式
cs.style&=~FWS_ADDTOTITLE;

cs.lpszName = WindowName;

8、设置CEdit字体

在父窗口定义 CFont font;

 在CEdit 定义前加上

font.CreatePointFont(200,"字体名",NULL);

    pEdit->SetFont(&font);

9、使一个变量N0~n之间变换

N  = ++N%n    取模运算

10、在子类中获得父类中视类的句柄

CDC *pDc =GetParentFrame()->GetActiveView()->GetDC();

11、实现鼠标左键按下拖动对话框

添加LButtonDown消息相应在里面添加如下代码:

    PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y));

    CDialogEx::OnLButtonDown(nFlags, point);

原创粉丝点击