2013年10月18日
摘要: 无边对话框没有标题栏供我们拖动,那我们要想办法使得我们单击其客户区的时候可以拖动,那么,只要以下简单的步骤即可: 1.给该对话框添加WM_ONLBUTTONDOWN消息 2.在OnLButtonDown函数中添加如下代码:1 PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y)); 如果你只是要简单的拖动它的话,添加这一句即可,但是如果你还要在鼠标左键弹起时响应别的事件,那么只有这句话是不够的,此时在OnLButtonDown函数中将上面代码换成如下代码:1 //PostMessage(WM_NCLBUT... 阅读全文
posted @ 2013-10-18 18:02 胡小颖颖 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 这几天一直在折腾怎么将文本数据保存到excel表格里,网上的资料不是特别多,找来找去,只有一篇是可以用的,很好的资源,下面粘下他的地址:http://blog.csdn.net/icyfox_bupt/article/details/6318979。这篇文章讲述了如何导入excel相关类,但是他附的是读excel里的数据,下面我说一下怎么往里面写数据。 前面步骤跟他的一样,excel里写数据主要是用CRange::put_Item()函数。 1 /*以下用到的变量为对话框的成员变量: 2 CApplication m_app; 3 CWorkbook m_book; 4 ... 阅读全文
posted @ 2013-10-18 17:53 胡小颖颖 阅读(1311) 评论(0) 推荐(0) 编辑
  2013年9月22日
摘要: 先明确一个概念:每个TCP socket在内核中都有一个发送缓冲区和一个接收缓冲区,TCP的全双工的工作模式以及TCP的滑动窗口便是依赖于这两个独立的buffer以及此buffer的填充状态。接收缓冲区把数据缓存入内核,应用进程一直没有调用read进行读取的话,此数据会一直缓存在相应 socket的接收缓冲区内。再啰嗦一点,不管进程是否读取socket,对端发来的数据都会经由内核接收并且缓存到socket的内核接收缓冲区之中。 read所做的工作,就是把内核缓冲区中的数据拷贝到应用层用户的buffer里面,仅此而已。进程调用send发送的数据的时候,最简单情况(也是一般情况),将数据拷贝进入. 阅读全文
posted @ 2013-09-22 10:50 胡小颖颖 阅读(231) 评论(0) 推荐(0) 编辑
  2013年8月7日
摘要: 若在子对话框中动态生成静态文本框,在点击按钮生成该对话框的同时就要创建静态文本框了。1.首先,在子对话框类中添加CStatic m_staticText成员变量。2.在点击button的处理函数中创建完子对话框后,添加如下代码:1 CRect rect;2 CWnd* pWnd;3 pWnd = GetActiveWindow();4 pWnd->GetClientRect(&rect);5 m_prectTranDlg->m_staticText = new CStatic;6 m_prectTranDlg->m_staticText->Create(_T(& 阅读全文
posted @ 2013-08-07 22:13 胡小颖颖 阅读(620) 评论(0) 推荐(0) 编辑
摘要: 改变对话框的背景色需要在该对话框类中添加WM_CTLCOLOR消息,在该消息中改变背景画刷即可。 1.首先在对话框类中添加一个成员变量CBrush m_brBrush,并在构造函数中创建该画刷:1 m_brBrush.CreateSolidBrush(RGB(255,255,0));//创建红色画刷函数原型:HBRUSHCBrush::CreateSolidBrush(COLORREF crColor) 函数功能:创建一个具有指定颜色的逻辑实心刷子,画笔可以随后被选为任何设备上下文的当前刷子。 参数解释:crColor:指定刷子的颜色。 返回值:如果该函数执行成功,那么返回值标识一... 阅读全文
posted @ 2013-08-07 21:33 胡小颖颖 阅读(352) 评论(0) 推荐(0) 编辑
  2013年8月2日
摘要: 想要动态改变对话框的大小就要先了解几个函数了:CWnd::SetWindowPos,API函数SetWindowPos,和CWnd::MoveWindow。函数原型: BOOL CWnd::SetWindowPos(const CWnd* pWndInsertAfter, int x, int y, int cx, int cy,UINT nFlags) BOOL SetWindowPos(HWND hWnd,const CWnd* pWndInsertAfter, int x, int y, int cx, int cy,UINT nFlags) void CWnd::MoveWi... 阅读全文
posted @ 2013-08-02 20:46 胡小颖颖 阅读(790) 评论(0) 推荐(0) 编辑
  2013年7月31日
摘要: 1、获取应用程序指针 CMyApp* pApp=(CMyApp*)AfxGetApp();2、获取主框架指针 CWinApp 中的公有成员变量 m_pMainWnd 就是主框架的指针 CMainFrame* pMainFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd); 或者 CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd();3、获取菜单指针 CMenu* pMenu = AfxGetMainWnd()->GetMenu();4、获取工具栏、状态栏指针 主框架中可以直接使用m_wn. 阅读全文
posted @ 2013-07-31 09:20 胡小颖颖 阅读(279) 评论(0) 推荐(0) 编辑
  2013年7月30日
摘要: MFC新手一枚,还是先从创建对话框开始吧。 Windows有两种对话框,模态对话框(Modal Dialogue Box)和非模态对话框(Modeless)。 模态对话框(Modal Dialogue Box)是指用户要对该对话框以外的应用程序进行操作的话,必须首先对该对话框进行响应,点击【确定】或【取消】来关闭该对话框。例如,你要删除某个文件时,Windows弹出的“确认删除文件夹”对话框,它就是个模态对话框。非模态(Modeless)对话框,当用户打开非模态对话框时,依然可以操作其他窗口。例如,Windows提供的记事本程序中的【查找】对话框。【查找】对话框不会垄断用户的输入,打开... 阅读全文
posted @ 2013-07-30 21:47 胡小颖颖 阅读(634) 评论(0) 推荐(0) 编辑