DrvListBoxDlg.cpp
上传用户:davidcaozc
上传日期:2007-01-01
资源大小:13k
文件大小:3k
源码类别:

组合框控件

开发平台:

Visual C++

  1. // DrvListBoxDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "resource.h"
  5. #include "DrvListBox.h"
  6. #include "DrvListBoxDlg.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CDrvListBoxDlg dialog
  14. CDrvListBoxDlg::CDrvListBoxDlg(CWnd* pParent /*=NULL*/)
  15. : CDialog(CDrvListBoxDlg::IDD, pParent)
  16. {
  17. //{{AFX_DATA_INIT(CDrvListBoxDlg)
  18. // NOTE: the ClassWizard will add member initialization here
  19. //}}AFX_DATA_INIT
  20. // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
  21. m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  22. }
  23. void CDrvListBoxDlg::DoDataExchange(CDataExchange* pDX)
  24. {
  25. CDialog::DoDataExchange(pDX);
  26. //{{AFX_DATA_MAP(CDrvListBoxDlg)
  27. DDX_Control(pDX, IDC_COMBOBOXEXS, m_DrvListBoxS);
  28. DDX_Control(pDX, IDC_COMBOBOXEXL, m_DrvListBoxL);
  29. //}}AFX_DATA_MAP
  30. // pick up selected root path
  31. if( pDX->m_bSaveAndValidate )
  32. {
  33. int s;
  34. s = m_DrvListBoxS.GetCurSel();
  35. if( s != CB_ERR )
  36. m_DrvListBoxSResult = ( const char * )m_DrvListBoxS.GetItemDataPtr( m_DrvListBoxS.GetCurSel());
  37. s = m_DrvListBoxL.GetCurSel();
  38. if( s != CB_ERR )
  39. m_DrvListBoxLResult = ( const char * )m_DrvListBoxS.GetItemDataPtr( m_DrvListBoxL.GetCurSel());
  40. }
  41. }
  42. BEGIN_MESSAGE_MAP(CDrvListBoxDlg, CDialog)
  43. //{{AFX_MSG_MAP(CDrvListBoxDlg)
  44. ON_WM_PAINT()
  45. ON_WM_QUERYDRAGICON()
  46. //}}AFX_MSG_MAP
  47. END_MESSAGE_MAP()
  48. /////////////////////////////////////////////////////////////////////////////
  49. // CDrvListBoxDlg message handlers
  50. BOOL CDrvListBoxDlg::OnInitDialog()
  51. {
  52. CDialog::OnInitDialog();
  53. // Set the icon for this dialog.  The framework does this automatically
  54. //  when the application's main window is not a dialog
  55. SetIcon(m_hIcon, TRUE); // Set big icon
  56. SetIcon(m_hIcon, FALSE); // Set small icon
  57. VERIFY( m_DrvListBoxS.LoadItems( false ) >= 0 );
  58. VERIFY( m_DrvListBoxL.LoadItems( true  ) >= 0 );
  59. return TRUE;  // return TRUE  unless you set the focus to a control
  60. }
  61. // If you add a minimize button to your dialog, you will need the code below
  62. //  to draw the icon.  For MFC applications using the document/view model,
  63. //  this is automatically done for you by the framework.
  64. void CDrvListBoxDlg::OnPaint() 
  65. {
  66. if (IsIconic())
  67. {
  68. CPaintDC dc(this); // device context for painting
  69. SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
  70. // Center icon in client rectangle
  71. int cxIcon = GetSystemMetrics(SM_CXICON);
  72. int cyIcon = GetSystemMetrics(SM_CYICON);
  73. CRect rect;
  74. GetClientRect(&rect);
  75. int x = (rect.Width() - cxIcon + 1) / 2;
  76. int y = (rect.Height() - cyIcon + 1) / 2;
  77. // Draw the icon
  78. dc.DrawIcon(x, y, m_hIcon);
  79. }
  80. else
  81. {
  82. CDialog::OnPaint();
  83. }
  84. }
  85. // The system calls this to obtain the cursor to display while the user drags
  86. //  the minimized window.
  87. HCURSOR CDrvListBoxDlg::OnQueryDragIcon()
  88. {
  89. return (HCURSOR) m_hIcon;
  90. }