随笔分类 - mfc
摘要:1、CSplitterWnd创建分割窗体,子窗体style需要为child,否则会抛出“创建空文档失败”等错误。2、对话框可视化设计中,设计完以后可以修改Tab键顺序,选中对话框,然后菜单栏:格式-〉Tab键顺序。3、使用户不可调整窗口大小。BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs){ if( !CFrameWndEx::PreCreateWindow(cs) ) return FALSE; // TODO: 在此处通过修改 // CREATESTRUCT cs 来修改窗口类或样式 cs.styl...
阅读全文
摘要:1、MFC画图测试void Codemo21View::draw(void)//画图测试 { HWND hWnd = GetSafeHwnd(); HDC hDC = ::GetDC(hWnd); wglMakeCurrent(hDC,m_hGLContext); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); glTranslatef(1.5f,0.0f,-6.0f); glBegin(GL_QUADS); // 绘制正方形 glColor3f(-...
阅读全文
摘要:转自:http://blog.sina.com.cn/s/blog_4d8205e40100gjfe.html要了解文档、视图、框架窗口、文档模板之间的相互关系,关键要理解他们的结构 1、首先应该对CWinApp类有充分的了解 它包含并管理着应用程序的文档/视窗的所有信息。 它有一个成员变量CDocManager *m_pDocManager,此变量是文档/视窗的管理器。 m_templateList是CDocManager里的一个列表,此列表里保存了所有文档模板的指针。 当用户调用 CWinApp::AddDocTemplate(pDocTemplate)后,该pDocTemplate存入了
阅读全文
摘要:转自:http://cid-2801919e8e836c16.spaces.live.com/blog/cns!2801919E8E836C16!151.entry方案一: 取随机数可以用C++标准的rand,至于M个不重复,你可以用std::set来解决,把取道的随机数 插入到set里面,set的size() == m就可以了, 具体可以这样:#include <set> #include <stdlib.h>int main() { std::set<int> s; while(1) { int r = rand() % n; s.insert(r);
阅读全文
摘要:《C++标准函数库》中说的有三个函数可以将字符串的内容转换为字符数组和C—string 1、data(),返回没有”\0“的字符串数组 2、c_str(),返回有”\0“的字符串数组 3、copy() ................................................................. int 转 CString: CString.Format("%d",int); ............................... string 转 CString CString.format("%s", st
阅读全文
摘要:一、win32 api下消息处理机制与画图例子://画图函数,winmain中循环调用此函数来画图。int DrawGLScene(GLvoid); //消息处理函数,处理所有窗口消息LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam);{ switch(uMsg) { case WM_ACTIVATE: //窗口激活状态 { if (!HIWORD(wParam)) //最小化 active=TRUE; //程序运行 break; } //从窗口系统菜单上发送该消息 case WM_SYSCOMMA
阅读全文
摘要:一、SetTimer表示的是定义个定时器。根据定义指定的窗口,在指定的窗口(CWnd)中实现OnTimer事件,这样,就可以相应事件了。 SetTimer有两个函数。 ①一个是全局的函数::SetTimer() UINT SetTimer( HWND hWnd, // handle of window for timer messages UINT nIDEvent, // timer identifier UINT uElapse, // time-out value TIMERPROC lpTimerFunc // address of timer procedure ); 其中hWnd
阅读全文
摘要:消息: WM_ACTIVATE参数: fActive = LOWORD(wParam); // activation flag fMinimized = (BOOL)HIWORD(wParam); // minimized flag hwndPrevious= (HWND)lParam; // window handlefActive 参数主要定义了该窗口发生了什么事情,即该窗口是被激活还是被取消。该信息保存在 wParam 的低阶字中,可以取以下的值:-----------------------------------------------------------------------
阅读全文
摘要:1. 基本要求 1.1 程序结构清析,简单易懂,单个函数的程序行数不得超过100行。 1.2 打算干什么,要简单,直接了当,代码精简,避免垃圾程序。 1.3 尽量使用标准库函数和公共函数。 1.4 不要随意定义全局变量,尽量使用局部变量。 1.5 使用括号以避免二义性。 2.可读性要求 2.1 可读性第一,效率第二。 2.2 保持注释与代码完全一致。 2.3 每个源程序文件,都有文件头说明,说明规格见规范。 2.4 每个函数,都有函数头说明,说明规格见规范。 2.5 主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。 2.7 常量定义(DEFINE)有相应说明。 2.8 处理过程
阅读全文
摘要:孙鑫的教程视频网址是http://www.sunxin.org/先把孙鑫老师的VC++教程学一遍。算是VC++入门吧。所有的代码在vs2008下调试通过。下面是第一课内容:创建一个窗口。//vs2008#include <TCHAR.h>//长字符#include<windows.h>#include <stdio.h>LRESULT CALLBACK WinSunProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );//windows程序入口函数int WINAPI WinMain( HINS
阅读全文