
VS2005(2013.03-2013.05)
push0529
迷途老码农
展开
-
vs2005 添加菜单及处理函数
1 在资源视图添加菜单,右键菜单选择“Add Resource...”,选择“Menu”2 点击“Type Here“对菜单项进行设置,每个菜单项有潜在的左菜单和下菜单(当一个菜单项被激活后自动创建),需要触发一个动作的菜单需要设置一个有意义的ID名称3 切到类视图,在相关类的属性窗口选择“Event”(闪电图标)4 找到对应的菜单项ID,选择COMMAND的处理函数,其名称默认为On原创 2013-03-17 22:37:01 · 1776 阅读 · 0 评论 -
vs2005 创建SDI程序
SDI程序与对话框程序最大的区别是包含了两个类:CDocument和CView,CDocument用于跟存储介质交互,对操作数据进行保存,CView则对用户界面进行管理根据需要存储的数据不同,需要对CDocument的Serialize进行实现。原创 2013-03-23 15:18:38 · 1024 阅读 · 0 评论 -
在对话框的客户区绘制图形
创建临时画布 CDC* pDC = GetDC(); CDC memdc; memdc.CreateCompatibleDC(pDC);向临时画布添加一个位图资源 CBitmap bitmap; bitmap.LoadBitmap(IDB_BITMAP_BK); memdc.SelectObject(&bitmap);获取客户区域 CRect rect; G原创 2013-04-29 11:25:21 · 740 阅读 · 0 评论 -
QQ分类按钮
花了一个礼拜时间,总算把这个代码啃完了,用的虚函数还是不太了解 使用方法:void CQQList::SetImageLists(CImageList *pImagelist) 设置关联的图像列表控件void CQQList::AddButton(LPCSTR BtnTitle, UINT8 uID) 添加一个分类按钮,参数 分类名称,IDvoid CQQList::原创 2013-05-04 21:16:38 · 1015 阅读 · 0 评论 -
改变窗口属性
http://blog.youkuaiyun.com/strategycn/article/details/6428851 在窗口创建之前完成之前改变窗口属性MFC中通过重写PreCreateWindow() 虚函数改变AppWizard生成的窗口的默认属性①通过改变PreCreateWindow()函数的CREATSTRUCT来改变。typedef struct t转载 2013-05-19 09:18:16 · 2665 阅读 · 0 评论 -
文本编辑器<一>文字输出
1 创建单文档应用程序;2 插入光标,为View类添加OnCreate函数,加入如下代码 CClientDC dc(this); TEXTMETRIC tm; dc.GetTextMetrics(&tm); CreateSolidCaret( tm.tmAveCharWidth/2,tm.tmHeight ); ShowCaret();3 增加字符输入,为V原创 2013-05-07 21:08:42 · 1011 阅读 · 1 评论 -
文本编辑器<四>键盘输入
变量说明cxChar 字符宽度cyChar 字符高度cxBuffer 行内最大字符数cyBuffer 最大行数pBuffer 输入内容存储区xCaret 光标x坐标yCaret 光标y坐标 创建时获取字符的基本信息int CMyEditorView::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (原创 2013-05-20 12:54:18 · 969 阅读 · 1 评论 -
文本编辑器<二>滚动条
关键函数OnSize获取Client的x,y范围void CMyEditorView::OnSize(UINT nType, int cx, int cy){ CView::OnSize(nType, cx, cy); cxClient = cx; cyClient = cy;}关键函数OnPaint进行绘制void CMyEditorView::OnP原创 2013-05-19 19:58:41 · 1574 阅读 · 0 评论 -
文本编辑器<三>更好的滚动条
void CMyEditorView::OnSize(UINT nType, int cx, int cy){ CView::OnSize(nType, cx, cy); cxClient = cx; cyClient = cy; si.cbSize = sizeof(si); si.fMask = SIF_RANGE | SIF_PAGE原创 2013-05-19 22:48:26 · 947 阅读 · 0 评论 -
视图类动态创建视图窗口
1 新建一个视图类CNewView(基类CFormView),构造函数需改成public,会自动添加资源IDD_NEWVIEW2 实现CNewView的OnPaint3 添加框架类目录项NewView,增加处理函数OnNewView,代码如下 CView* pView = (CView*) new CNewView; CView* pOldView = GetActiveView(原创 2013-05-11 09:48:58 · 835 阅读 · 0 评论 -
标签页控件
标签页控件的原理是根据不同标签选择对应的对话框资源,下面代码为标签页控件创建了两个标签,其对应的对话框资源需要预先设置好 mTab.InsertItem(0,_T("FIRST"),0); mTab.InsertItem(1,_T("SECOND"),1); mFirstDlg.Create(IDD_DIALOG_FIRST,&mTab); mSecondDlg.Create(原创 2013-04-20 19:10:43 · 1071 阅读 · 2 评论 -
VS2005鼠标键盘事件(0814)
从键盘读取输入创建单窗口项目为键盘数据创建存储区——为doc类增加CString类class CkeyboardDoc : public CDocument{protected: // 仅从序列化创建 CkeyboardDoc(); DECLARE_DYNCREATE(CkeyboardDoc) CString StringData;原创 2011-08-14 19:50:30 · 1593 阅读 · 1 评论 -
列表框控件——报表显示
添加列表框控件,View属性选择ReportOnInitDialog方法mList.SetExtendedStyle( LVS_EX_FLATSB | //扁平风格显示滚动条 LVS_EX_FULLROWSELECT | //整行选中 LVS_EX_HEADERTRAGDROP | //整列拖动 LVS_EX_ONEC原创 2013-04-23 21:03:46 · 829 阅读 · 0 评论 -
设置对话框形状
OnPaint方法 //创建内存DC CDC *pDC = GetDC(); CDC memDC; memDC.CreateCompatibleDC(pDC); //获取新窗体形状(通过bmp文件) CBitmap bitmap; bitmap.LoadBitmapW(IDB_BITMAP_BK); memDC.SelectObject(&bitmap);原创 2013-04-20 14:13:24 · 1060 阅读 · 0 评论 -
列表视图添加背景
应用程序初始化函数 InitInstance 调用,必须执行此项操作,否则其他数据会被背景图像掩盖AfxOleInit(); OnInitDialog方法 mImageList.Create(32,32,ILC_COLOR24|ILC_MASK,1,0); mImageList.Add( AfxGetApp()->LoadIconW(IDI_ICON1) ); mIma原创 2013-04-20 16:57:05 · 879 阅读 · 0 评论 -
树形控件
mImageList.Create(16,16,ILC_COLOR24|ILC_MASK,1,1); mImageList.Add(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON2))); mImageList.Add(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_I原创 2013-04-20 17:24:58 · 566 阅读 · 0 评论 -
设置对话框的透明度
SetTransparence(int value){ SetWindowLong(GetSafeHwnd(),GWL_EXSTYLE, GetWindowLong(GetSafeHwnd(),GWL_EXSTYLE) | 0x80000); //设置窗口扩展风格 typedef BOOL (WINAPI *FSetLayeredWindo原创 2013-04-29 10:56:54 · 788 阅读 · 0 评论 -
修改注册表使程序自动运行
//获取程序路径 wchar_t path[256]; ::GetCurrentDirectory(256,path); CString progName; progName.Format( _T("%s\\Clock.exe"),path ); //添加注册表项 CString m_Skey = _T("Softvare\\Microsoft\\Windows\\Curr原创 2013-04-30 14:10:42 · 889 阅读 · 0 评论 -
对话框全屏显示/背景设置
OnInitDialog方法 PostMessage(WM_SYSCOMMAND,SC_MAXIMIZE,0); CRect rect; GetClientRect(&rect); ::SetWindowPos( AfxGetMainWnd()->m_hWnd,HWND_TOPMOST,rect.left, rect.top,rect.right,rect.bottom,SW原创 2013-04-20 12:22:07 · 1717 阅读 · 0 评论 -
手动添加一个事件处理
我也碰到“add/remove operation impossible...”的问题了,网上找了一些方法,比较简单的就是“删除ncb,suo文件,修改文件夹只读属性”,可是自己试了没有效果。实在没有耐性去解决一个微软搞出来的问题,于是就自己尝试创建一个事件处理,没想到异常顺利。我是自己创建了一个CStatic的派生类CColorStatic,希望在这个派生类中处理WM_PAINT消息,参考D原创 2013-04-21 21:54:35 · 879 阅读 · 0 评论 -
VS2005 painter程序关键点
在视图类中使用CClientDC绘图CClientDC pDC = new CClientDC(this);pDC->MoveTo(...)pDC->LineTo(...)pDC->SelectStockObject(...)pDC->Rectangle(....)改变鼠标外观BOOL CPainterView::PreCreateWindow(CREATEST原创 2013-03-31 15:08:55 · 966 阅读 · 0 评论 -
分割窗口
建立分割窗口http://www.cnblogs.com/Lizheng0201/archive/2008/02/28/1399840.html1 CMainFrame类添加虚方法OnCreateClient,见下面的代码2 添加CSplitterWnd类对象m_wndSplitter3 CDivisionView是自己创建的View类BOOL CMainFrame::OnCr转载 2013-05-10 20:08:36 · 2702 阅读 · 1 评论