相关的一些关于界面的操作,如果以后会继续用的话,还是去搞qt吧,MFC好像不行。
1、如何打开子界面后使主界面隐藏:
在主界面打开子界面前添加:ShowWindow(SW_HIDE);
2、如何打开一个网页,默认浏览器:
ShellExecute(GetSafeHwnd(),_T("open"),_T("http://www.baidu.com"),_T(""),NULL,SW_SHOW);
3、列表COMBOX如何设置默认项:
COMBOX_USERTYPE.SetCurSel(1);
4、列表COMBOX如何只能选择不能修改编辑
将combox的属性type改为Drop List
5、如何让子界面在任务栏显示图标
ModifyStyleEx(0,WS_EX_APPWINDOW);
6、如何在MFC界面中显示图片
分为两种,一种是动态显示(刷新之类的),一种是固定显示(如公司的logo,嵌入式的)。首先在界面中添加一个控件“Picture Control”,然后定义一个ID,然后添加一个控制变量,一般是CStatic的这是m_picture
CRect rect;//
m_picture.GetClientRect(&rect); //控件与RECT绑定
//m_picture为Picture控件IDC_PIC的member variables,获得控件的区域对象,在class wizard中定义
CImage image; //使用图片类
image.Load("person.jpg"); //filename为图片的路径及名称
CDC* pDC = m_picture.GetWindowDC(); //获得显示控件的DC
image.Draw( pDC -> m_hDC,rect); //图片类的图片绘制Draw函数
ReleaseDC(pDC);
第二种是固定的添加在界面上,如logo
这里的方法是:先添加一个资源Bitmap,然后得到资源名
添加一个picture control控件,然后将该资源名和控件绑定。picture_control的属性-》Image填进去就可以了。
7、通过socket获取IP地址(windows)
SOCKADDR_IN addr_conn;
int nSize = sizeof(addr_conn);
getpeername(sClient, (SOCKADDR *)&addr_conn, &nSize);
char szPeerAddress[16];
//Sets buffers to a specified character.
memset((void *)szPeerAddress,0,sizeof(szPeerAddress));
string name = pack->m_pcData;
//进行插入操作
strcpy(szPeerAddress,inet_ntoa(addr_conn.sin_addr));
string IP = szPeerAddress;
8、MFC CFileDialog,获取指定路径打开文件,解决每次都打开默认的“我的文档”文件夹其实很简单,就加一句话就可以了,CFileDialog里面设置默认文件夹。
CFileDialog FileDlg(TRUE);
FileDlg.m_ofn.lpstrInitialDir = L"C:\\Windows\\Boot";