ConfigDlg.cpp
上传用户:cxh888fhc
上传日期:2017-07-08
资源大小:240k
文件大小:4k
源码类别:

钩子与API截获

开发平台:

Visual C++

  1. // ConfigDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "CQQFind.h"
  5. #include "ConfigDlg.h"
  6. #include "CQQFindDlg.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CConfigDlg dialog
  14. CConfigDlg::CConfigDlg(CWnd* pParent /*=NULL*/)
  15. : CDialog(CConfigDlg::IDD, pParent)
  16. {
  17. //{{AFX_DATA_INIT(CConfigDlg)
  18. m_nCirCle = -1;
  19. m_nWidth = 1;
  20. //}}AFX_DATA_INIT
  21. }
  22. void CConfigDlg::DoDataExchange(CDataExchange* pDX)
  23. {
  24. CDialog::DoDataExchange(pDX);
  25. //{{AFX_DATA_MAP(CConfigDlg)
  26. DDX_Control(pDX, IDOK, m_btnOK);
  27. DDX_Control(pDX, IDCANCEL, m_btnCancel);
  28. DDX_Control(pDX, IDC_BTN_COLOR, m_btnColor);
  29. DDX_Radio(pDX, IDC_CIRCLE, m_nCirCle);
  30. DDX_Text(pDX, IDC_EDIT_WIDTH, m_nWidth);
  31. DDV_MinMaxInt(pDX, m_nWidth, 1, 6);
  32. //}}AFX_DATA_MAP
  33. }
  34. BEGIN_MESSAGE_MAP(CConfigDlg, CDialog)
  35. //{{AFX_MSG_MAP(CConfigDlg)
  36. ON_WM_PAINT()
  37. ON_BN_CLICKED(IDC_BTN_COLOR, OnBtnColor)
  38. //}}AFX_MSG_MAP
  39. END_MESSAGE_MAP()
  40. /////////////////////////////////////////////////////////////////////////////
  41. // CConfigDlg message handlers
  42. void CConfigDlg::OnPaint() 
  43. {
  44. CPaintDC dc(this); // device context for painting
  45. // TODO: Add your message handler code here
  46. CBrush brush;
  47. brush.CreateSolidBrush(m_clrDraw);
  48. CBrush *pOldBrush=(CBrush *)dc.SelectObject(brush);
  49. dc.Rectangle(86,28,118,56);
  50. // dc.SelectObject(pOldBrush);
  51. // Do not call CDialog::OnPaint() for painting messages
  52. }
  53. void CConfigDlg::OnBtnColor() 
  54. {
  55. // TODO: Add your control notification handler code here
  56. CColorDialog dlg(m_clrDraw);
  57. if(dlg.DoModal()==IDOK)
  58. {
  59. m_clrDraw=dlg.GetColor();
  60. InvalidateRect(CRect(85,27,119,57),TRUE);
  61. }
  62. }
  63. BOOL CConfigDlg::OnInitDialog() 
  64. {
  65. CDialog::OnInitDialog();
  66. // TODO: Add extra initialization here
  67. m_clrDraw=((CCQQFindDlg *)GetParent())->m_clrDraw;
  68. m_nWidth=((CCQQFindDlg *)GetParent())->m_nWidth;
  69. m_nCirCle=((CCQQFindDlg *)GetParent())->m_bCircle==TRUE?0:1;
  70. UpdateData(FALSE);
  71. m_btnCancel.SetDefaultButton(TRUE);
  72. m_btnColor.SetDefaultButton(TRUE);
  73. m_btnOK.SetDefaultButton(TRUE);
  74. m_btnOK.SetDefaultFace();
  75. m_btnColor.SetDefaultFace();
  76. m_btnCancel.SetDefaultFace();
  77. return TRUE;  // return TRUE unless you set the focus to a control
  78.               // EXCEPTION: OCX Property Pages should return FALSE
  79. }
  80. void CConfigDlg::OnOK() 
  81. {
  82. // TODO: Add extra validation here
  83. SetWindowLong(m_hWnd,GWL_EXSTYLE,   
  84. GetWindowLong(m_hWnd,GWL_EXSTYLE)|0x80000);   
  85. HINSTANCE   hInst   =   LoadLibrary("User32.DLL");     
  86. if(hInst)     
  87. {     
  88. typedef   BOOL   (WINAPI   *MYFUNC)(HWND,COLORREF,BYTE,DWORD);     
  89. MYFUNC   fun   =   NULL;    
  90. fun=(MYFUNC)GetProcAddress(hInst,   "SetLayeredWindowAttributes");   
  91. if(fun)
  92. {
  93. int i=255*3;
  94. {
  95. while(i--)
  96. {
  97. MSG msg;
  98. while(PeekMessage(&msg,m_hWnd,0,0,PM_REMOVE))
  99. {
  100. TranslateMessage(&msg);
  101. DispatchMessage(&msg);
  102. }
  103. fun(m_hWnd,0,i/3,2);  
  104. }
  105. }
  106. }
  107. FreeLibrary(hInst);
  108. }
  109. CDialog::OnOK();
  110. }
  111. void CConfigDlg::OnCancel() 
  112. {
  113. // TODO: Add extra cleanup here
  114. SetWindowLong(m_hWnd,GWL_EXSTYLE,   
  115. GetWindowLong(m_hWnd,GWL_EXSTYLE)|0x80000);   
  116. HINSTANCE   hInst   =   LoadLibrary("User32.DLL");     
  117. if(hInst)     
  118. {     
  119. typedef   BOOL   (WINAPI   *MYFUNC)(HWND,COLORREF,BYTE,DWORD);     
  120. MYFUNC   fun   =   NULL;    
  121. fun=(MYFUNC)GetProcAddress(hInst,   "SetLayeredWindowAttributes");   
  122. if(fun)
  123. {
  124. int i=255*3;
  125. {
  126. while(i--)
  127. {
  128. MSG msg;
  129. while(PeekMessage(&msg,m_hWnd,0,0,PM_REMOVE))
  130. {
  131. TranslateMessage(&msg);
  132. DispatchMessage(&msg);
  133. }
  134. fun(m_hWnd,0,i/3,2);  
  135. }
  136. }
  137. }
  138. FreeLibrary(hInst);
  139. }
  140. CDialog::OnCancel();
  141. }