MFC相关技术
介绍MFC相关的技术
smilestone322
通过软考: 系统架构设计师和信息系统项目管理师考试
工业相机和DVR开发,熟悉windows驱动开发,camera sdk开发,3D摄像头sdk开发。
联系方式:smilestone322@sina.com
展开
-
vc如何让自定义工具栏按钮图标变灰也就是失效
如题:原创 2013-02-25 17:04:01 · 1908 阅读 · 0 评论 -
如何选中MFC中的菜单栏,在选中后打钩
bool m_bChecked = false;void CXXXDlg::OnXXXX(){ // TODO: 在此添加命令处理程序代码 m_bChecked = !m_bChecked;}//void CXXXDlg::OnInitMenuPopup(CMenu *pPopupMenu, UINT nIndex,BOOL bSysMenu){ if (!bS原创 2012-07-21 12:00:12 · 5604 阅读 · 2 评论 -
CDateTimeCtrl 控件的使用
如何获取比系统时间小一个小时的时间: m_StartTime.SetFormat(_T("yyy-MM-dd HH:mm:ss")); CTime CTempTime=CTime::GetCurrentTime(); CTime theTime(CTempTime.GetYear(),CTempTime.GetMonth(),CTempTime.GetDay(),CT原创 2012-07-20 17:53:50 · 1653 阅读 · 0 评论 -
MFC 主线程等待子线程退出函数
void WaitForThreadExit(void){ DWORD dwRet; MSG msg; int wait_count=4; int nExitThreadCount=0; while(1) { dwRet = MsgWaitForMultipleObjects(wait_count, hArray, FALSE, INFINITE, QS_ALLI原创 2012-07-07 18:21:22 · 6850 阅读 · 1 评论 -
VC MFC 对话框 Picture控件 显示图像闪烁问题
在VC 使用StretchDIBits函数拉伸图像,然后显示,使用pWnd->Invalidate(); pWnd->UpdateWindow();刷新窗口,发现当图像和背景相差很大的时候,有闪烁现象。 解决办法:hdd=DrawDibOpen(); ::DrawDibDraw(hdd,m_hDC,0,0,rPhotoRight-rPhotoLeft,rPhotoBot原创 2012-07-01 19:51:13 · 5019 阅读 · 0 评论 -
VC MFC 对话框,如何实现鼠标拖动显示一个框,松开鼠标框就消失
如题:原创 2012-06-26 20:04:28 · 1955 阅读 · 0 评论 -
MFC 之Tab控件使用
CRect childRect; m_Tab.GetWindowRect(&childRect); ScreenToClient(&childRect); childRect.top += 20; childRect.left += 1; childRect.bottom += 20; childRect.right += 1; m_1Dlg.Create(IDD原创 2012-05-07 16:22:55 · 964 阅读 · 0 评论 -
MFC 主对话框弹出非模态对话框后,非模态对话框不能刷新
我在非模态对话框上放置了一个picture控件和一些MFC的Edit及Button控件,但是我使用下面的函数刷新Invalidate();UpdateWindow(); 竟然不能刷新 后面发现是:BOOL OnEraseBkgnd(CDC* pDC){ // TODO: 在此添加消息处理程序代码和/或调用默认值 return FALSE;}原创 2012-04-29 10:40:47 · 3705 阅读 · 0 评论 -
主窗口最小化后其子窗口非模态对话框消失
在onsize函数中ShowWindow(SW_SHOW),解决,不过要通过一个bool变量判断,不然当没有弹出非模态对话框时,响应这个消息,也会将非模态对话框显示出来;原创 2012-04-28 15:50:29 · 2954 阅读 · 1 评论 -
MFC 对话框上画矩形,怎么让矩形跟着对话框移动而移动
我在MFC的对话框上显示视频,然后再在Onpaint里面画一个矩形,然后我拖动对话框,发现矩形还是固定在屏幕的那个位置,不能跟着对话框拖动而拖动,另外当另外一个页面覆盖掉对话框时,矩形画到另外一个页面上了,还有对话框最小化时,矩形也画在下面的其它页面上,有高手指点下:我就是想对话框怎么和画的矩形绑定,对话框动,矩形跟着动,当对话框被覆盖,矩形也要覆盖,即好像画的矩形就是对话框的一部分一样。原创 2012-03-22 14:28:55 · 2809 阅读 · 0 评论 -
垂直滚动条拉到最下时,显示的图像和拉到最上时一样
MFC 对话框上添加滚动条后,显示图像时,发现垂直滚动条拉到最下时,显示的图像和拉到最上时一样,不知为什么?还有一个,就是垂直滚动条是反的,因为位图是从下往上显示的,所以要注意颠倒下,至于垂直滚动条拉到最大和最上显示的图像一样,比如说滚动条的范围是0-100,从0-99时,拉垂直滚动条是正确的,但是从99-100时,就突然跳到初始时,垂直滚动条为0时一样。原创 2012-03-21 22:37:41 · 1146 阅读 · 0 评论 -
MFC 对话框程序如何添加目录,工具栏,状态栏
1)工具栏 CBitmap bm; UINT Resource[size]={IDB_BMP1,IDB_BMP2,IDB_BMP3,IDB_BMP4,IDB_BMP5,IDB_BMP6}; //位图ID数组 int i; m_ImageList.Create(32,32,ILC_COLOR24|ILC_MASK,0,0); //创建Image List原创 2012-03-01 09:24:29 · 1691 阅读 · 0 评论 -
MFC 对话框 之Yuv ddraw缩放+滚动条+左键放大,右键缩小
方法: 大致的方法和RGB的缩放一致,注意ddraw yuv视频显示时,由于点击鼠标左键对图像进行放大,会造成ddraw的表面的高度和宽度等发生变化,这样我们缩放时,要及时跟新ddraw表面,在yuv缩放显示时,由于我有好几个类之间交互数据,造成2个对象访问同一个类的成员(坐标)的情况,获取不到坐标值。这个问题可以采用设计模式里面的单态 设计模式或使用GetParent()获取父类原创 2012-03-01 09:22:09 · 2872 阅读 · 0 评论 -
MFC 对话框上RGB图像缩放,左键放大,右键缩小+滚动条使用
大家知道,对于文档视图类来说,这样图像的缩放,视图框架就给我们做了,那么怎样在对话框做缩放呢? 问题:将图像缩放到屏幕分辨率大小,及任意倍数的缩放 方法 (1)如果缩放后的图像比显示屏的分辨率小,则隐藏对应的滚动条(ShowScrollBar);(2)根据缩放比例,计算出要显示放大图片的大小;(3)将滚动条的范围设置成0-100,根据缩放的size分成4档,显示原创 2012-02-29 21:41:35 · 4827 阅读 · 0 评论 -
MFC---之对话框滚动条的使用
(1) SetScrollRange BOOL SetScrollRange( __in HWND hWnd, __in int nBar, __in int nMinPos, __in int nMaxPos, __in BOOL bRedraw); 函数功能:该函数设置所指定滚动条位置的最大最小值。参数:hWnd:滚动条原创 2012-02-29 20:31:40 · 9235 阅读 · 0 评论 -
vc MFC picture控件 yuv图像缩放 方法
在vs2008 下,MFC程序的picture控件上ddraw显示yuv图像,目前因为ddraw默认是显示图像原始大小的,即picture控件中只能显示一部分图像,还有一部分显示不出来,为了解决这个问题,对yuv图像进行缩放,当鼠标双击picture控件时,弹出另外一个对话框,在这个对话框上进行图像缩放; 1)根据图像的分辨率及图像的size,弹出的对话框必须加入滚动条,不然有图像看不到;原创 2012-02-23 16:46:37 · 4019 阅读 · 5 评论 -
vs MFC picture控件上图像局部缩放
如题: 思路: 1)因为图像在picture控件上显示时,就已经对图像进行了缩放,一般使用vc的函数缩放的; 2)使用鼠标框住一个矩形,目的是讲这个矩形进行缩放,支持2倍,4倍,全屏3种方式; 3)必须根据picture控件上矩形框的位置,获取原始图像对应的坐标, 4)然后根据原始的图像坐标,在对这个局部的区域进行放大;原创 2012-02-20 18:57:44 · 3943 阅读 · 5 评论 -
MFC 双击picture控件后弹出另外一个对话框,显示大图的策略
在做视频处理时候,有时候需要对图像进行缩放,还有时候又需要显示全屏图像,MFC 鼠标双击picture控件后弹出另外一个对话框,显示大图的策略如下: 1) 首先获取picture控件的size,然后获取鼠标的点击区域,判断是否在picture的区域里面,然后在触发弹出另外一个对话框的事件;BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg){原创 2012-02-19 15:13:26 · 3278 阅读 · 3 评论 -
vs2008 MFC 常见错误--新员工常犯的错误!
(1)picture 控件添加成员变量时,出现无效的过程调用或参数解决办法:找到头文件// 对话框数据 enum { IDD = IDD_LDXXXX_DIALOG };后面添加下面这行; enum cust_enum{}; (2)vc 6.0 升级到vs2005错误 1 error C2668: “pow”: 对重载函数的调用不明确 dlg.m原创 2011-12-30 16:34:40 · 7801 阅读 · 6 评论 -
vc6.0 to vs2008 postmessage 消息函数错误!
error C2440: “static_cast”: 无法从“LRESULT (__thiscall TimerDlg::* )(void)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)” 解决办法,将消息函数中的返回值和参数都改变afx_msg LRESULT(WPARAM wParam,LPARAM lParam);原创 2011-10-18 13:38:57 · 1472 阅读 · 0 评论 -
vs2008 MFC 对话框 敲回车,ESE键,程序自动退出解决办法
找到对话框所在的类,右键点属性,然后在重载消息里面,找到PreTranslateMessageBOOL PreTranslateMessage(MSG* pMsg){ // TODO: 在此添加专用代码和/或调用基类 if(pMsg -> message == WM_KEYDOWN) { if(pMsg -> wParam == VK_ESCAPE) retur原创 2011-09-13 22:31:34 · 2229 阅读 · 0 评论