一、图片按钮
1 类中定义变量CControlButton m_ctrlOK;
2 数据交换 DDX_Control(pDX, IDC_LOGIN, m_ctrlOK);
3 使用方法
GetDlgItem(IDC_LOGIN)->MoveWindow(1,100,80,40);
m_ctrlOK.SetBitmapId(".\\admin\\登录1.bmp",".\\admin\\登录.bmp",
".\\admin\\登录2.bmp",".\\admin\\登录.bmp");
二、 // 装入棒形光标
HINSTANCE hInstResource = AfxFindResourceHandle(MAKEINTRESOURCE(IDC_SIZEALL), RT_GROUP_CURSOR);
::SetCursor(m_hCursor); // 将光标改为棒形
三 设置鼠标捕获
SetCapture(); //鼠标捕获设置到指定的窗口。在鼠标按钮按下的时候,这个窗口会为
//当前应用程序或整个系统接收所有鼠标输入
//释放鼠标捕获
ReleaseCapture();
Dlg::OnMouseMove(UINT nFlags, CPoint point) {
if (m_bTracking)
{
// 获取鼠标位置
ClientToScreen(&point);
// 获取鼠标下面所在的窗口句柄
m_hCurrWnd = ::WindowFromPoint(point);
HMODULE hUser32 = GetModuleHandle("user32");
if (!hUser32)
return;
SwitchToThisWindow = (PROCSWITCHTOTHISWINDOW)
GetProcAddress(hUser32,"SwitchToThisWindow");
if (!SwitchToThisWindow)
return;
SwitchToThisWindow(m_hCurrWnd,TRUE); //切换鼠标下的窗口
// 显示该窗口的类、标题等信息…
}
CDialog::OnMouseMove(nFlags, point);
//lbuttonUp
四 界面透明
//获取句柄
HMODULE hUser32 = GetModuleHandle(_T("USER32.DLL"));
//获取函数地址
g_pSetLayeredWindowAttributes = (lpfn)GetProcAddress(hUser32, "SetLayeredWindowAttributes");
if (g_pSetLayeredWindowAttributes == NULL)
AfxMessageBox ("Layering is not supported in this version of Windows", MB_ICONEXCLAMATION);
//设置透明度
::SetWindowLong(m_hCurrWnd, GWL_EXSTYLE, GetWindowLong(m_hCurrWnd, GWL_EXSTYLE) ^ /*WS_EX_LAYERED*/0x00080000);
g_pSetLayeredWindowAttributes(m_hCurrWnd, 0, (BYTE)m_slider.GetPos(), /*LWA_ALPHA*/2);
::RedrawWindow(m_hCurrWnd, NULL, NULL,RDW_ERASE | RDW_INVALIDATE | RDW_FRAME | RDW_ALLCHILDREN);
五滑块使用
1、rc文件添加资源
CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_BOTH |
TBS_NOTICKS | WS_TABSTOP,16,16,110,15
#define IDC_SLIDER1 1000
2、定义变量
CSliderCtrl m_slider;
3、数据交换
DDX_Control(pDX, IDC_SLIDER1, m_slider);
4 使用 m_slider.GetPos()