MFC 窗体控件选择的问题

来源:互联网 发布:js判断radio选中 编辑:程序博客网 时间:2024/05/18 20:12

////设置 CheckBox  为 选择状态
BOOL COpenBurnIntestDlg::SelectCheckbox(HWND hWin, INTwidgetId)
{
 HWND hCheckbox =::GetDlgItem(hWin,widgetId);
 if( hCheckbox )
 {
  ::SendMessage( hCheckbox,BM_SETCHECK, true, 0 );
  return true;
 }

 return false;
}

void COpenBurnIntestDlg::InitWidgetInfo()
{
 m_minutes.SetCheckboxId(WIDGET_MINUTES_CHECKBOXID);
 m_minutes.SetEditId(WIDGET_MINUTES_EDITID);
 m_minutes.SetName(WIDGET_MINUTES_NAME);
 m_minutes.SetXmlMark(WIDGET_MINUTES_XML);

 m_cycles.SetCheckboxId(WIDGET_CYCLES_CHECKBOXID);
 m_cycles.SetEditId(WIDGET_CYCLES_EDITID);
 m_cycles.SetName(WIDGET_CYCLES_NAME);
 m_cycles.SetXmlMark(WIDGET_CYCLES_XML);

 m_CPU.SetCheckboxId(WIDGET_CPU_CHECKBOXID);
 m_CPU.SetEditId(WIDGET_CPU_EDITID);
 m_CPU.SetName(WIDGET_CPU_NAME);
 m_CPU.SetXmlMark(WIDGET_CPU_XML);

 m_opticalDrives.SetCheckboxId(WIDGET_OPTICALDRIVE_CHECKBOXID);
 m_opticalDrives.SetEditId(WIDGET_OPTICALDRIVE_EDITID);
 m_opticalDrives.SetName(WIDGET_OPTICALDRIVE_NAME);
 m_opticalDrives.SetXmlMark(WIDGET_OPTICALDRIVE_XML);

 m_printer.SetCheckboxId(WIDGET_PRINTER_CHECKBOXID);
 m_printer.SetEditId(WIDGET_PRINTER_EDITID);
 m_printer.SetName(WIDGET_PRINTER_NAME);
 m_printer.SetXmlMark(WIDGET_PRINTER_XML);

 m_RAM.SetCheckboxId(WIDGET_RAM_CHECKBOXID);
 m_RAM.SetEditId(WIDGET_RAM_EDITID);
 m_RAM.SetName(WIDGET_RAM_NAME);
 m_RAM.SetXmlMark(WIDGET_RAM_XML);

 m_COMPort.SetCheckboxId(WIDGET_COMPORT_CHECKBOXID);
 m_COMPort.SetEditId(WIDGET_COMPORT_EDITID);
 m_COMPort.SetName(WIDGET_COMPORT_NAME);
 m_COMPort.SetXmlMark(WIDGET_COMPORT_XML);

 m_tape.SetCheckboxId(WIDGET_TAPE_CHECKBOXID);
 m_tape.SetEditId(WIDGET_TAPE_EDITID);
 m_tape.SetName(WIDGET_TAPE_NAME);
 m_tape.SetXmlMark(WIDGET_TAPE_XML);

 m_video.SetCheckboxId(WIDGET_VIDEO_CHECKBOXID);
 m_video.SetEditId(WIDGET_VIDEO_EDITID);
 m_video.SetName(WIDGET_VIDEO_NAME);
 m_video.SetXmlMark(WIDGET_VIDEO_XML);

 m_plugIn.SetCheckboxId(WIDGET_PLUGIN_CHECKBOXID);
 m_plugIn.SetEditId(WIDGET_PLUGIN_EDITID);
 m_plugIn.SetName(WIDGET_PLUGIN_NAME);
 m_plugIn.SetXmlMark(WIDGET_PLUGIN_XML);

 m_2DGraphics.SetCheckboxId(WIDGET_2DGRAPHICS_CHECKBOXID);
 m_2DGraphics.SetEditId(WIDGET_2DGRAPHICS_EDITID);
 m_2DGraphics.SetName(WIDGET_2DGRAPHICS_NAME);
 m_2DGraphics.SetXmlMark(WIDGET_2DGRAPHICS_XML);

 m_3DGraphics.SetCheckboxId(WIDGET_3DGRAPHICS_CHECKBOXID);
 m_3DGraphics.SetEditId(WIDGET_3DGRAPHICS_EDITID);
 m_3DGraphics.SetName(WIDGET_3DGRAPHICS_NAME);
 m_3DGraphics.SetXmlMark(WIDGET_3DGRAPHICS_XML);

 m_disks.SetCheckboxId(WIDGET_DISK_CHECKBOXID);
 m_disks.SetEditId(WIDGET_DISK_EDITID);
 m_disks.SetName(WIDGET_DISK_NAME);
 m_disks.SetXmlMark(WIDGET_DISK_XML);

 m_sound.SetCheckboxId(WIDGET_SOUND_CHECKBOXID);
 m_sound.SetEditId(WIDGET_SOUND_EDITID);
 m_sound.SetName(WIDGET_SOUND_NAME);
 m_sound.SetXmlMark(WIDGET_SOUND_XML);

 m_network.SetCheckboxId(WIDGET_NETWORK_CHECKBOXID);
 m_network.SetEditId(WIDGET_NETWORK_EDITID);
 m_network.SetName(WIDGET_NETWORK_NAME);
 m_network.SetXmlMark(WIDGET_NETWORK_XML);

 m_parallelPort.SetCheckboxId(WIDGET_PARALLELPORT_CHECKBOXID);
 m_parallelPort.SetEditId(WIDGET_PARALLELPORT_EDITID);
 m_parallelPort.SetName(WIDGET_PARALLELPORT_NAME);
 m_parallelPort.SetXmlMark(WIDGET_PARALLELPORT_XML);

 m_USB.SetCheckboxId(WIDGET_USB_CHECKBOXID);
 m_USB.SetEditId(WIDGET_USB_EDITID);
 m_USB.SetName(WIDGET_USB_NAME);
 m_USB.SetXmlMark(WIDGET_USB_XML);

 //加载多语言  "确定"按钮
 if( NULL == m_ptrButtonOK )
 {
  m_ptrButtonOK = newWCHAR[MAX_PATH];
  LoadString(NULL,OBIT_IDS_BUTTON_OK, m_ptrButtonOK, MAX_PATH );
 }

 if( NULL == m_ptrButtonYes )
 {
  m_ptrButtonYes = newWCHAR[MAX_PATH];
  LoadString(NULL,OBIT_IDS_BUTTON_YES, m_ptrButtonYes, MAX_PATH );
 }
}

BOOL COpenBurnIntestDlg::SetWidget( CMyWidget& widget,CXmlNodeWrapper xml, HWND hWin )
{
 CXmlNodeWrapper xmlNode = xml.GetNode(widget.GetXmlMark() );
 if( xmlNode.IsValid() && SelectCheckbox(hWin, widget.GetCheckboxId()) )
 {
  Sleep(200);
  //设置文本数值
  CString strText =xmlNode.GetText();
  HWND hWinEdit = ::GetDlgItem(hWin, widget.GetEditId() );

  if( hWinEdit )
  {
   if(strText.IsEmpty() )
   {
    strText= _T("100");
    ::SendMessage(hWinEdit,WM_SETTEXT,strText.GetLength(),(LPARAM)strText.GetBuffer()); 
   }
   else
   {
    ::SendMessage(hWinEdit,WM_SETTEXT,strText.GetLength(),(LPARAM)strText.GetBuffer()); 
   }

   returntrue;
  }
 }
 
 return false;
}

BOOL COpenBurnIntestDlg::SelectToolBarItem(HWND hWin , INTindex)
{
 if(hWin)
 {
  HWND hToolBar =::FindWindowEx(hWin,NULL,_T("ToolbarWindow32"),NULL);
  if (hToolBar)
  {
   CToolbarmyToolBar;
   myToolBar.SetCtrlAction(hToolBar,index);
   returntrue;
  }
 }

 return false;
}


BOOL COpenBurnIntestDlg::SetTestPreferencesDisk( HWND hParents)
{
 //先 打开工具条 的 第 5 个
 if( !SelectToolBarItem( hParents,TOOLBAR_TEST_SET_TEST_PREFERENCES) )
 {
  return false;
 }
  
 Sleep(1000);
 //BurnInTest Preferences
 HWND preferences = ::FindWindow(NULL,WINDOW_TITLE_SET_TEST_PREFERENCES);
 if( !preferences )
 {
  return false;
 }
 
 if( !SelectTab(preferences,TAB_DISK_MAJOR_DIFFERENCE, TAB_DISK_MINOR_DIFFERENCE ) )
 {
  ClickButton(WINDOW_TITLE_SET_TEST_PREFERENCES, m_ptrButtonOK );
  returnfalse;  
 }

 ClickButton(WINDOW_TITLE_SET_TEST_PREFERENCES, m_ptrButtonOK );
 return true;
}


BOOL COpenBurnIntestDlg::SelectTab( HWND hWin, CStringlpMajorTarget, CString lpMinorTarget )
{
 HWND hTab = ::FindWindowEx( hWin, NULL,_T("SysTabControl32"), NULL );
 if( !hTab )
 {
  return false;
 }

 INT count = TabCtrl_GetItemCount(hTab);
 for(INT i=0; i
 {
  TABCONTROL_SETCURFOCUS(hTab,i);
  Sleep(1000);
  HWND hChildren =::FindWindowEx(hWin, NULL, NULL, _T("Test Preferences"));
  if( hChildren )
  {
   if(::FindWindowEx(hChildren, NULL, NULL, lpMajorTarget ) )
   {
    HWNDbutton = ::FindWindowEx(hChildren, NULL, NULL, lpMinorTarget);
    if(button )
    {
     ::SendMessage(button,BM_SETCHECK, true, 0);
     returntrue;
    }
   }

  }
 }

 return false;
}