VC++ 屏蔽Esc键

在NoEscDlg.h头文件中添加代码:


// 实现
protected:
	HICON m_hIcon;

	// 生成的消息映射函数
	virtual BOOL OnInitDialog();
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	virtual BOOL PreTranslateMessage(MSG* pMsg);  // 新加的函数
	DECLARE_MESSAGE_MAP()
};


在NoEscDlg.cpp中添加代码:


BOOL CNoEscDlg::PreTranslateMessage(MSG* pMsg)
{
	//屏蔽ESC关闭窗体/
	if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE ) return TRUE;
	//屏蔽回车关闭窗体,但会导致回车在窗体上失效.
	//if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN && pMsg->wParam) return TRUE;
	else
		return CDialog::PreTranslateMessage(pMsg);
}

编译程序,运行。按下Esc键,发现没有任何反应,成功。

C++11 多线程简单食用

#include <thread>

#include <iostream>

 

void hello()

{

    std::cout << "Hello from thread " << std::endl;

}

 

int main()

{

    std::thread t1(hello);

    t1.join();

std::cout<<"Main Thread"<<std::endl;

    return 0;

}

C/C++ #ifdef简单食用

#include <iostream>
using namespace std;

int main(int argc, char *argv[])
{
#ifdef DEBUG
	cout << "Beginning execution of main()" << endl;
#endif
	return 0;
}


运行效果:

修改为:


#include <iostream>
using namespace std;
#define DEBUG
int main(int argc, char *argv[])
{
#ifdef DEBUG
	cout << "Beginning execution of main()" << endl;
#endif
	return 0;
}



运行效果:

MFC中CheckBox简单食用

首先创建一个成员变量,名称为"m_checkbox1"。

这里我已经添加了,所以是灰色。

然后双击CheckBox,插♂入代码。

	int check;
	
	check = m_checkbox1.GetCheck();
	switch (check)
	{
	case BST_CHECKED:
		//被选中
		MessageBox(_T("被选中"));
		break;
	case BST_UNCHECKED:
		//不被选择
		MessageBox(_T("不被选中"));
		break;
	}


SendMessage简单使用

	UpdateData(TRUE); //获取编辑框中的内容
	HWND hWnd = ::FindWindow(_T("Notepad"), NULL); //查找Notepad句柄
	if (hWnd)
	{
// 		::ShowWindow(hWnd, SW_NORMAL);
// 		::SetForegroundWindow(hWnd);

		HWND hText = ::GetDlgItem(hWnd, 0xF); //0000000F 获取控件句柄
		::SendMessage(hText, WM_SETTEXT, NULL, (LPARAM)(LPCTSTR)m_text); //发送信息

	}
	else
		MessageBox(_T("执行失败。"));


MSDN:https://msdn.microsoft.com/zh-cn/library/t64sseb3.aspx