
C++/MFC
常识
@珍惜一生@
这个作者很懒,什么都没留下…
展开
-
vs utf-8 无bom 中文 编译失败
warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失。为什么会用UTF-8,因为我们用Qt,Qt推荐的编码格式是UTF-8,但我们又是使用的msvc编译,所以经常遇到这种冲突。工程编译中增加 /utf-8 编译选项,这样可以避免UTF-8中文的问题。将代码文件按改成UTF-8 with BOM格式。原创 2024-03-08 16:36:39 · 656 阅读 · 0 评论 -
MFC常用控件访问方法
(1)GetDlgItem()->GetWindowText()GetDlgItem(控件地址)->GetWindowText(字符串,长度);GetDlgItem(控件地址)->SetWindowText(字符串);num=_ttoi(str);//将字符串转换为数_itot(num,str,10进制); //将数转换为字符串(2)GetDlgItemText()GetDlgItemText(控件地址,字符串,长度);SetDlgItemText(控件地址,字符串);(3原创 2021-06-17 17:14:55 · 268 阅读 · 0 评论 -
拖动无边窗口
LRESULT CteDlg::OnNcHitTest(CPoint point){ // TODO: 在此添加消息处理程序代码和/或调用默认值 UINT n = CDialogEx::OnNcHitTest(point); CRect rect; GetClientRect(&rect); ScreenToClient(&point); if (PtInRect(rect,point)) { if (n == HTCLIENT) n = HTC原创 2021-06-17 17:09:47 · 114 阅读 · 0 评论 -
MFC 特殊按键隐藏(PreTranslateMessage)
BOOL CDialog_Information::PreTranslateMessage(MSG* pMsg)//////屏蔽回车键和Esc键{// TODO: 在此添加专用代码和/或调用基类if (pMsg->message == WM_KEYDOWN&&pMsg->wParam == VK_ESCAPE)return TRUE;if (pMsg->message == WM_KEYDOWN&&pMsg->wParam == VK_RET原创 2021-06-16 16:52:01 · 359 阅读 · 0 评论 -
BitBlt详解
BOOL BitBlt(HDC hdcDest, // DCint nXDest, //图片位置x坐标int nYDest, //图片位置y坐标int nWidth, //图片显示的宽度int nHeight, //图片显示的高度HDC hdcSrc, //加载图片的DCint nXSrc, //一张图片截取的位置Xint nYSrc, //一张图片截取的位置YDWORD dwRop //指定光栅操作代码);...原创 2021-06-16 16:49:53 · 419 阅读 · 0 评论 -
CRect 基本用法
矩形(1)判断点是不是在矩形中CRect rect(10,10,400,400);Point point;BOOL b = PtInRect(&rect,point);//b为TRUE则point在rect中,否者不在rect中(2)填充一个矩形CPaintDC dc(this);CRect rect(10,10,400,400);CBrush brush(RGB(255,0,255));dc . FillRect(&rect,&brush);(3)填原创 2021-06-16 16:47:38 · 1029 阅读 · 0 评论 -
ShellExecute创建进程
ShellExecute(NULL,TEXT(“open”),TEXT(“MFC_TXZ2.exe”),NULL,NULL,SW_SHOWNORMAL);//打开在该程序下的MFC_TXZ2.exe文件原创 2021-06-16 16:46:11 · 218 阅读 · 0 评论 -
CFile
(1)保存文件.txtvoid CNotePadDlg::OnSave()//保存文件{ // TODO: 在此添加命令处理程序代码 CFile file; if (!file.Open(TEXT("./test.txt"),CFile::modeCreate|CFile::modeWrite)) { MessageBox(TEXT("失败")); return ; } char s[1024] = {0}; GetDlgItemText(IDC_EDIT1,s,原创 2021-06-16 16:43:59 · 120 阅读 · 0 评论 -
Oracle数据库
1 Oracle数据库连接CoInitialize(NULL);//初始化ADO也就是COM函数_ConnectionPtr m_pCon (__uuidof(Connection));//创建连接对象try{CString Link = _T("Provider=OraOLEDB.Oracle;Data Source=orcl");//驱动和Oracle服务CString Name = _T("123");//用户名(Oracle用户名)CString Word = _T("123"原创 2021-06-16 11:11:13 · 98 阅读 · 0 评论 -
TiXmlDocument 用法
TCHAR Buff[MAX_PATH]; GetModuleFileName(AfxGetInstanceHandle(), Buff, MAX_PATH); CString strPath(Buff); strPath = strPath.Left(strPath.ReverseFind('\\')); strPath += _T("\\config\\BTSRepeater场强区.xml"); TiXmlDocument docXML(strPath); if(docXML.Load..原创 2021-05-25 17:07:11 · 2206 阅读 · 3 评论 -
std::vector 用法
为了使用vector,必须在头文件中包含下面的代码:#include vector属于std命名域的,因此需要通过命名限定,可以在文件开头加上using std::vector;或者using namespace std;或者直接在使用vector的代码前加前缀:std::vector myHouse;(1)它可以像普通数组一样访问 :vecMyHouse[50] = 1024;(2)顺序地向容器中填充数据 for(i =0;i< 25; i++ ){vecMyHouse.pus原创 2021-05-25 14:45:21 · 5691 阅读 · 0 评论 -
ColeDateTime 用法
COleDateTime T = COleDateTime::GetCurrentTime(); int a = T.GetYear(); int b = T.GetMonth(); int c = T.GetDay(); int d = T.GetHour();//得到时 int e = T.GetMinute();//得到分 int f = T.GetSecond(); int g = T.GetDayOfWeek();//得到星期,返回值1表示星期日,2表示星期二…….. CS...原创 2021-05-25 14:43:17 · 561 阅读 · 0 评论 -
CTime用法
CTime time = CTime::GetCurrentTime();int a = time.GetYear();//得到年(1970年~2038年)int b = time.GetMonth();//得到月int c = time.GetDay();//得到日int d = time.GetHour();//得到时int e = time.GetMinute();//得到分int f = time.GetSecond();//得到秒int g = time.GetDayO原创 2021-05-25 14:41:54 · 650 阅读 · 0 评论 -
MFC 窗口指针
1) 在View中获得Doc指针CYouSDIDoc *pDoc=GetDocument();一个视只能有一个文档。2) 在App中获得MainFrame指针CWinApp 中的 m_pMainWnd变量就是MainFrame的指针也可以: CMainFrame *pMain =(CMainFrame *)AfxGetMainWnd();3) 在View中获得MainFrame指针CMainFrame pMain=(CmaimFrame )AfxGetApp()->m_pMainWnd;原创 2021-05-24 18:18:19 · 272 阅读 · 0 评论 -
MFC 窗口操作(最大、最小等)
(1)最大化SendMessage(WM_SYSCOMMAND,SC_MAXIMIZE,0);//最大化(2)最小化SendMessage(WM_SYSCOMMAND,SC_MINIMIZE,0);//最小化(3)还原SendMessage(WM_SYSCOMMAND,SC_RESTORE,0);//还原(4)关闭SendMessage(WM_CLOSE,0,0);//关闭(5)居中CenterWindow();//居中(6)位置大小SetWindowPos(NULL,100,100,原创 2021-05-24 18:15:07 · 1740 阅读 · 0 评论 -
MFC 注销、关机、重启
HANDLE hh;//令牌句柄if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hh))//TOKEN_ADJUST_PRIVILEGES修改进程权限,打开进程令牌{ MessageBox(_T("失败1")); return ;}TOKEN_PRIVILEGES tkp;//令牌权限LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,原创 2021-05-24 13:28:15 · 232 阅读 · 0 评论 -
MFC 设置EXE文件的图标
1 设置EXE文件的图标(ICO)步骤1:将对应的ICO图片复制到对应程序的res文件夹中;步骤2:将头文件中的Resource.h中的#define IDR_MAINFRAME 128中的数值128与加入图形的数值调换;步骤3:将m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME)中的IDR_MAINFRA ME换成要添加的ICO图片的ID;2 EXE文件在任务栏中不显示ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOL原创 2021-05-24 13:24:50 · 1260 阅读 · 0 评论 -
模式对话框与非模式对话框(MFC)
1 模式对话框CDlg k;k . DoModal;//不可移动2 非模式对话框CDlg *S = New CDlg;S->Create(IDD_DLG,this);S->ShowWindow(SW_SHOW);//可移动原创 2021-05-24 13:21:49 · 323 阅读 · 0 评论 -
MFC进程间通信
1 数据定义class MESSAGE{public: char name[50]; int age; int tel; int grade;};2 Sendvoid CTecherLi_SendDlg::OnBnClickedSend(){ // TODO: 在此添加控件通知处理程序代码 UpdateData(TRUE); MESSAGE *message=new MESSAGE; GetDlgItemText(IDC_EDIT4,message->name,原创 2021-05-19 17:24:47 · 941 阅读 · 0 评论