图片按钮 鼠标捕获 界面透明 滑块

一、图片按钮
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()

 

posted @ 2013-11-14 16:53  呵呵··  阅读(213)  评论(0编辑  收藏  举报