BOOL CPlayerStatusBar::OnEraseBkgnd(CDC* pDC) { for (CWnd* pChild = GetWindow(GW_CHILD); pChild; pChild = pChild->GetNextWindow()) { if (!pChild->IsWindowVisible()) { continue; } CRect r; pChild->GetClientRect(&r); pChild->MapWindowPoints(this, &r); pDC->ExcludeClipRect(&r); } CRect r; GetClientRect(&r); CMainFrame* pFrame = ((CMainFrame*)GetParentFrame()); if (pFrame->m_pLastBar != this || pFrame->m_fFullScreen) { r.InflateRect(0, 0, 0, 1); } if (pFrame->m_fFullScreen) { r.InflateRect(1, 0, 1, 0); } pDC->Draw3dRect(&r, GetSysColor(COLOR_3DSHADOW), GetSysColor(COLOR_3DHILIGHT)); r.DeflateRect(1, 1); pDC->FillSolidRect(&r, 0); return TRUE; }
bool CAviSplitterSettingsWnd::OnActivate() { ASSERT(IPP_FONTSIZE == 13); DWORD dwStyle = WS_VISIBLE | WS_CHILD | WS_TABSTOP; CPoint p(10, 10); m_cbBadInterleavedSuport.Create (ResStr(IDS_AVISPLITTER_NON_INTERLEAVED), dwStyle|BS_AUTOCHECKBOX|BS_LEFTTEXT, CRect(p, CSize(IPP_SCALE(270), m_fontheight)), this, IDC_PP_INTERLEAVED_SUPPORT); p.y += IPP_SCALE(20); m_cbSetReindex.Create (ResStr(IDS_AVISPLITTER_REINDEX_BROKEN), dwStyle|BS_AUTOCHECKBOX|BS_LEFTTEXT, CRect(p, CSize(IPP_SCALE(270), m_fontheight)), this, IDC_PP_SET_REINDEX); if (m_pMSF) { m_cbBadInterleavedSuport.SetCheck(m_pMSF->GetBadInterleavedSuport()); m_cbSetReindex.SetCheck(m_pMSF->GetReindex()); } for (CWnd* pWnd = GetWindow(GW_CHILD); pWnd; pWnd = pWnd->GetNextWindow()) { pWnd->SetFont(&m_font, FALSE); } SetClassLongPtr(m_hWnd, GCLP_HCURSOR, (long)AfxGetApp()->LoadStandardCursor(IDC_ARROW)); SetClassLongPtr(GetDlgItem(IDC_PP_INTERLEAVED_SUPPORT)->m_hWnd, GCLP_HCURSOR, (long)AfxGetApp()->LoadStandardCursor(IDC_HAND)); return true; }
BOOL CMFCControlContainer::SubclassDlgControls() { if (m_pWnd->GetSafeHwnd() != NULL) { // Subclass Feature Pack controls: CWnd* pWndChild = m_pWnd->GetWindow(GW_CHILD); while (pWndChild != NULL) { ASSERT_VALID(pWndChild); TCHAR lpszClassName [MAX_CLASS_NAME + 1]; ::GetClassName(pWndChild->GetSafeHwnd(), lpszClassName, MAX_CLASS_NAME); CWnd* pWndSubclassedCtrl = CreateDlgControl(lpszClassName); if (pWndSubclassedCtrl != NULL) { m_arSubclassedCtrls.Add((CObject*)pWndSubclassedCtrl); pWndSubclassedCtrl->SubclassWindow(pWndChild->GetSafeHwnd()); } pWndChild = pWndChild->GetNextWindow(); } return TRUE; } return FALSE; }
BOOL CWizardSheet::OnChildNotify(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pLResult) { CWnd* pWnd = GetActivePage(); if ( pWnd != NULL ) { if ( GetWindowLongPtr( pWnd->GetSafeHwnd(), GWLP_USERDATA ) == TRUE ) { pWnd = NULL; } else { SetWindowLongPtr( pWnd->GetSafeHwnd(), GWLP_USERDATA, TRUE ); pWnd->SetFont( &theApp.m_gdiFont, FALSE ); pWnd = pWnd->GetWindow( GW_CHILD ); } } while ( pWnd != NULL ) { TCHAR szName[32]; GetClassName( pWnd->GetSafeHwnd(), szName, 32 ); if ( _tcscmp( szName, L"Static" ) == 0 ) pWnd->SetFont( &theApp.m_gdiFont, FALSE ); else if ( _tcscmp( szName, L"RICHEDIT" ) != 0 ) pWnd->SetFont( &theApp.m_gdiFont, TRUE ); pWnd = pWnd->GetNextWindow(); } return CPropertySheetAdv::OnChildNotify( message, wParam, lParam, pLResult ); }
void CWizardPage::StaticReplace(LPCTSTR pszSearch, LPCTSTR pszReplace) { const int nLen = (int)_tcslen( pszSearch ); for ( CWnd* pChild = GetWindow( GW_CHILD ); pChild; pChild = pChild->GetNextWindow() ) { TCHAR szName[32]; GetClassName( pChild->GetSafeHwnd(), szName, 32 ); if ( _tcscmp( szName, L"Static" ) != 0 ) continue; CString strText; pChild->GetWindowText( strText ); for ( ;; ) { int nPos = strText.Find( pszSearch ); if ( nPos < 0 ) break; strText = strText.Left( nPos ) + pszReplace + strText.Mid( nPos + nLen ); } pChild->SetWindowText( strText ); } }
BOOL CPolyDlg::OnInitDialog() { CDialog::OnInitDialog(); //Subclass combobox edit ctrl m_subedit.m_pDlg = this; // so ESPDlgEdit can call OnEnterKey() CWnd *pWnd = (m_Combo_Corner.GetWindow(GW_CHILD)); m_pEditWnd = (pWnd->GetNextWindow()); //pointer to editbox window m_subedit.SubclassWindow(m_pEditWnd->GetSafeHwnd()); //subclass to CPMDlgEdit class //load contour list POSITION pos = m_ContourPtrList.GetHeadPosition() ; while ( pos ) { CString ctrstr ; CContour* pCtr = (CContour*)m_ContourPtrList.GetNext( pos ) ; ctrstr = pCtr->m_csContourName ; m_ContourList.AddString( ctrstr ) ; } //load corner list from 1st contour m_LastContourSelIdx = -1 ; if( m_ContourList.GetCount() > 0 ) { m_ContourList.SetCurSel( 0 ) ; OnSelchangeContour() ; } UpdateControls() ; return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
BOOL CSkin::CreateToolBar(LPCTSTR pszName, CCoolBarCtrl* pBar) { if ( pszName == NULL ) return FALSE; for ( CWnd* pChild = pBar->GetWindow( GW_CHILD ) ; pChild ; pChild = pChild->GetNextWindow() ) { pChild->ShowWindow( SW_HIDE ); } pBar->SetWatermark( NULL ); pBar->Clear(); CCoolBarCtrl* pBase = NULL; CString strName( pszName ); m_pToolbars.Lookup( strName, (void*&)pBase ); if ( pBase != NULL ) { pBar->Copy( pBase ); return TRUE; } else { return FALSE; } }
bool CMpegSplitterSettingsWnd::OnActivate() { ASSERT(IPP_FONTSIZE == 13); const int h20 = IPP_SCALE(20); const int h25 = IPP_SCALE(25); const int h30 = IPP_SCALE(30); DWORD dwStyle = WS_VISIBLE | WS_CHILD | WS_TABSTOP; CPoint p(10, 10); m_cbForcedSub.Create(ResStr(IDS_MPEGSPLITTER_SUB_FORCING), dwStyle | BS_AUTOCHECKBOX | BS_LEFTTEXT, CRect(p, CSize(IPP_SCALE(305), m_fontheight)), this, IDC_PP_SUBTITLE_FORCED); p.y += h20; m_cbAlternativeDuration.Create(ResStr(IDS_MPEGSPLITTER_ALT_DUR_CALC), dwStyle | BS_AUTOCHECKBOX | BS_LEFTTEXT, CRect(p, CSize(IPP_SCALE(305), m_fontheight)), this, IDC_PP_ALTERNATIVE_DURATION); p.y += h20; m_cbSubEmptyPin.Create(ResStr(IDS_MPEGSPLITTER_SUB_EMPTY_PIN), dwStyle | BS_AUTOCHECKBOX | BS_LEFTTEXT, CRect(p, CSize(IPP_SCALE(305), m_fontheight)), this, IDC_PP_ENABLE_SUB_EMPTY_PIN); p.y += h25; #ifdef REGISTER_FILTER m_txtAudioLanguageOrder.Create(ResStr(IDS_MPEGSPLITTER_LANG_ORDER), WS_VISIBLE | WS_CHILD, CRect(p, CSize(IPP_SCALE(200), m_fontheight)), this, (UINT)IDC_STATIC); p.y += h20; m_edtAudioLanguageOrder.CreateEx(WS_EX_CLIENTEDGE, _T("EDIT"), _T(""), WS_CHILD | WS_VISIBLE | WS_TABSTOP, CRect(p, CSize(IPP_SCALE(305), m_fontheight + 6)), this, IDC_PP_AUDIO_LANGUAGE_ORDER); p.y += h25; m_txtSubtitlesLanguageOrder.Create(ResStr(IDS_MPEGSPLITTER_SUB_ORDER), WS_VISIBLE | WS_CHILD, CRect(p, CSize(IPP_SCALE(200), m_fontheight)), this, (UINT)IDC_STATIC); p.y += h20; m_edtSubtitlesLanguageOrder.CreateEx(WS_EX_CLIENTEDGE, _T("EDIT"), _T(""), WS_CHILD | WS_VISIBLE | WS_TABSTOP, CRect(p, CSize(IPP_SCALE(305), m_fontheight + 6)), this, IDC_PP_SUBTITLES_LANGUAGE_ORDER); p.y += h25; #endif m_grpTrueHD.Create(ResStr(IDS_MPEGSPLITTER_TRUEHD_OUTPUT), WS_VISIBLE | WS_CHILD | BS_GROUPBOX, CRect(p, CSize(IPP_SCALE(305), h20 + h20)), this, (UINT)IDC_STATIC); p.y += IPP_SCALE(15); p.x += IPP_SCALE(10); m_cbTrueHD.Create(_T("TrueHD"), dwStyle | BS_AUTORADIOBUTTON | BS_TOP | BS_MULTILINE | WS_GROUP, CRect(p, CSize(IPP_SCALE(60), m_fontheight + 2)), this, IDC_PP_TRUEHD); m_cbAC3Core.Create(_T("AC-3"), dwStyle | BS_AUTORADIOBUTTON | BS_TOP | BS_MULTILINE, CRect(p + CPoint(IPP_SCALE(160), 0), CSize(IPP_SCALE(60), m_fontheight + 2)), this, IDC_PP_AC3CORE); if (m_pMSF) { m_cbForcedSub.SetCheck(m_pMSF->GetForcedSub()); #ifdef REGISTER_FILTER m_edtAudioLanguageOrder.SetWindowText(m_pMSF->GetAudioLanguageOrder()); m_edtSubtitlesLanguageOrder.SetWindowText(m_pMSF->GetSubtitlesLanguageOrder()); #endif m_cbTrueHD.SetCheck(m_pMSF->GetTrueHD() == 0); m_cbAC3Core.SetCheck(!m_cbTrueHD.GetCheck()); m_cbAlternativeDuration.SetCheck(m_pMSF->GetAlternativeDuration()); m_cbSubEmptyPin.SetCheck(m_pMSF->GetSubEmptyPin()); } for (CWnd* pWnd = GetWindow(GW_CHILD); pWnd; pWnd = pWnd->GetNextWindow()) { pWnd->SetFont(&m_font, FALSE); } SetClassLongPtr(m_hWnd, GCLP_HCURSOR, (long)AfxGetApp()->LoadStandardCursor(IDC_ARROW)); SetClassLongPtr(GetDlgItem(IDC_PP_SUBTITLE_FORCED)->m_hWnd, GCLP_HCURSOR, (long)AfxGetApp()->LoadStandardCursor(IDC_HAND)); SetDirty(false); return true; }
void CCoolMenuBarCtrl::UpdateWindowMenu(CMenu* pMenu) { for ( UINT nItem = 0 ; nItem < pMenu->GetMenuItemCount() ; nItem++ ) { UINT nID = pMenu->GetMenuItemID( nItem ); if ( nID >= AFX_IDM_FIRST_MDICHILD ) { for ( UINT nRemove = nItem ; nRemove < pMenu->GetMenuItemCount() ; ) pMenu->RemoveMenu( nItem, MF_BYPOSITION ); pMenu->RemoveMenu( nItem - 1, MF_BYPOSITION ); break; } } CMDIFrameWnd* pFrame = (CMDIFrameWnd*)AfxGetMainWnd(); if ( ! pFrame->IsKindOf( RUNTIME_CLASS(CMDIFrameWnd) ) ) return; for ( CWnd* pClient = pFrame->GetWindow( GW_CHILD ) ; pClient ; pClient = pClient->GetNextWindow() ) { TCHAR szClass[64]; GetClassName( pClient->GetSafeHwnd(), szClass, 64 ); if ( _tcsicmp( szClass, _T("MDIClient") ) == 0 ) break; } if ( pClient == NULL ) return; CMDIChildWnd* pActive = pFrame->MDIGetActive(); BOOL bSeparator = TRUE; for ( UINT nIndex = 1, nID = AFX_IDM_FIRST_MDICHILD ; nIndex <= 10 ; nIndex++, nID++ ) { CWnd* pWnd = pClient->GetDlgItem( nID ); if ( ! pWnd ) break; #ifdef _SHAREAZA CChildWnd* pChildWnd = (CChildWnd*)pWnd; if ( pChildWnd->m_bTabMode ) { nIndex--; continue; } #endif if ( bSeparator ) { pMenu->AppendMenu( MF_SEPARATOR, ID_SEPARATOR ); bSeparator = FALSE; } CString strMenu, strWindow; pWnd->GetWindowText( strWindow ); strMenu.Format( _T("&%i %s"), nIndex, (LPCTSTR)strWindow ); pMenu->AppendMenu( MF_STRING | ( pWnd == pActive ? MF_CHECKED : 0 ), nID, strMenu ); } }
void CPagePowerManagement::EnableWindowGroup(WORD nID, BOOL bEnabled) { CWnd* wndGrp = GetDlgItem(nID); ASSERT(wndGrp); wndGrp->EnableWindow(bEnabled); wndGrp = wndGrp->GetNextWindow(); while (wndGrp) { if (wndGrp->GetStyle() & WS_GROUP) break; wndGrp->EnableWindow(bEnabled); wndGrp = wndGrp->GetNextWindow(); } }
void COXLayoutManager::AddAllChildren(BOOL bSetDefaultConstraints /* = TRUE */) { ASSERT(m_pContainerWnd); CWnd* pChild = m_pContainerWnd->GetWindow(GW_CHILD); for (; pChild; pChild = pChild->GetNextWindow()) AddChild(pChild, bSetDefaultConstraints); }
BOOL CInfoShowDialog::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here m_anchar.Init(GetSafeHwnd()); if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOOLTIPS | CBRS_ALIGN_TOP, CRect(4, 4, 0, 0)) || !m_wndToolBar.LoadToolBar(IDR_TB_INFO_SHOW)) { TRACE0("Failed to create toolbar\n"); return -1; // fail to create } m_wndToolBar.LoadTrueColorToolBar(16, 16, IDB_DEBUG_TOOLBAR, IDB_DEBUG_TOOLBAR); m_wndToolBar.SetButtonStyle(1, TBBS_CHECKBOX); // RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0); CRect rcClientStart; CRect rcClientNow; GetClientRect(rcClientStart); //取得对话框客户区的矩形区域大小存于rcClientStart当中 RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0, reposQuery, rcClientNow); //上面创建了工具栏所以调整一次工具栏的默认高度就是30(经测量得出的结论),前面已经创建了一个工具栏, // 并通过 RepositionBars进行了调整所以客户区rcClientNow矮了30 CPoint ptOffset(rcClientNow.left-rcClientStart.left, rcClientNow.top-rcClientStart.top); CRect rcChild; //用来保存子窗口的矩形区域大小 CWnd* pwndChild = GetWindow(GW_CHILD);//取得CWnd第一个子窗口的指针 while (pwndChild) { //循环将所有的子窗口重新调整其位置 pwndChild->GetWindowRect(rcChild);//取得句柄所对应子窗口的矩形坐标(屏幕坐标)存入rcChild ScreenToClient(rcChild);//将屏幕坐标转化为窗客户坐标 rcChild.OffsetRect(ptOffset);//将矩形rcChild按照ptOffset进行偏移计算 pwndChild->MoveWindow(rcChild, FALSE);//将子窗口移动到rcChild处 pwndChild = pwndChild->GetNextWindow();//取得下一个子窗口的指针 } ///////////////下面将对话框大小重整//////////////////////////////////////////////////////// CRect rcWindow; GetWindowRect(rcWindow);//取得窗口的屏幕矩形坐标,包含标题栏与边框在内 rcWindow.right += rcClientStart.Width() - rcClientNow.Width(); rcWindow.bottom += rcClientStart.Height() - rcClientNow.Height(); MoveWindow(rcWindow, FALSE); RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);//将控件重排一次,改动了对话框的大小,再调整一次控件的位置,否则控件就不见啦 CenterWindow(); // 增加显示日志的控件的锚点,尺寸跟着父窗口的变化而变化 m_anchar.Add(IDC_LIST_INFO_SHOW_LOG, ANCHOR_ALL); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
void CWindowFind::SetTestChildEditText(HWND hwnd,int iIndex) { HWND hwndChind = NULL; CString strTemp = ""; TCHAR szClassName[256]={0}; int i = 1; hwndChind = GetWindow(hwnd,GW_CHILD); CWnd *pWnd = CWnd::FromHandle(hwndChind); while (pWnd) { memset(szClassName,0,sizeof(szClassName)); hwndChind = pWnd->GetSafeHwnd(); GetClassName(hwndChind,(LPTSTR)&szClassName,256); if ((CString)szClassName == "Edit") { if (iIndex == 0) { strTemp.Format("test%d",i); } else { if (i == iIndex) { strTemp.Format("te11111111st%d",i); } } CopyStringToClipboard(NULL,strTemp); CEdit *pCob = (CEdit *)CWnd::FromHandle(hwndChind); if (pCob) { //先删除原有号码后向号码输入框发送复制消息 if (iIndex == 0) { pCob->SetSel(0, -1); pCob->Clear(); ::PostMessage(hwndChind,WM_PASTE,0,0); } else { if (i == iIndex) { pCob->SetSel(0, -1); pCob->Clear(); ::PostMessage(hwndChind,WM_PASTE,0,0); } } } } pWnd = pWnd->GetNextWindow(GW_HWNDNEXT); i++; } }
void CTreePropSheet::MoveChildWindows(int nDx, int nDy) { CWnd *pWnd = GetWindow(GW_CHILD); while (pWnd) { CRect rect; pWnd->GetWindowRect(rect); rect.OffsetRect(nDx, nDy); ScreenToClient(rect); pWnd->MoveWindow(rect); pWnd = pWnd->GetNextWindow(); } }
BOOL CAgencyPropertiesDlg::OnInitDialog() { CDialog::OnInitDialog(); for ( CWnd* pWnd = GetWindow( GW_CHILD ); pWnd; pWnd = pWnd->GetNextWindow() ) { pWnd->SendMessage( EM_SETREADONLY, TRUE ); } if ( ! LoadRecordset() ) EndDialog(IDCANCEL); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
int CWindowFind::GetChildWindowNum(HWND hwnd) { HWND hwndChind = NULL; int i = 0; hwndChind = GetWindow(hwnd,GW_CHILD); CWnd *pWnd = CWnd::FromHandle(hwndChind); while (pWnd) { hwndChind = pWnd->GetSafeHwnd(); pWnd = pWnd->GetNextWindow(GW_HWNDNEXT); i++; } return i; }
HWND GetComboBoxEditCtrl(CComboBox& cb) { CWnd* pWnd = cb.GetWindow(GW_CHILD); while (pWnd) { CHAR szClassName[MAX_PATH]; if (::GetClassNameA(*pWnd, szClassName, ARRSIZE(szClassName))) { if (__ascii_stricmp(szClassName, "EDIT") == 0) return pWnd->m_hWnd; } pWnd = pWnd->GetNextWindow(); } return NULL; }
static BOOL ContainsSplitter (CFrameWnd* pFrame) { CWnd* pWndChild = pFrame->GetWindow (GW_CHILD); while (pWndChild != NULL) { ASSERT_VALID (pWndChild); CSplitterWnd* pSplitter = DYNAMIC_DOWNCAST (CSplitterWnd, pWndChild); if (pSplitter != NULL) { return TRUE; } pWndChild = pWndChild->GetNextWindow (); } return FALSE; }
void ModifyAllWindowStyles(CWnd* pWnd, DWORD dwRemove, DWORD dwAdd) { CWnd* pWndChild = pWnd->GetWindow(GW_CHILD); while (pWndChild) { ModifyAllWindowStyles(pWndChild, dwRemove, dwAdd); pWndChild = pWndChild->GetNextWindow(); } if (pWnd->ModifyStyleEx(dwRemove, dwAdd, SWP_FRAMECHANGED)) { pWnd->Invalidate(); // pWnd->UpdateWindow(); } }
void CPlayerStatusBar::OnPaint() { CPaintDC dc(this); // device context for painting for (CWnd* pChild = GetWindow(GW_CHILD); pChild; pChild = pChild->GetNextWindow()) { if (!pChild->IsWindowVisible()) { continue; } CRect r; pChild->GetClientRect(&r); pChild->MapWindowPoints(this, &r); dc.ExcludeClipRect(&r); } CRect r; GetClientRect(&r); if (m_pMainFrame->m_pLastBar != this || m_pMainFrame->m_fFullScreen) { r.InflateRect(0, 0, 0, 1); } if (m_pMainFrame->m_fFullScreen) { r.InflateRect(1, 0, 1, 0); } dc.Draw3dRect(&r, GetSysColor(COLOR_3DSHADOW), GetSysColor(COLOR_3DHILIGHT)); r.DeflateRect(1, 1); dc.FillSolidRect(&r, 0); if (m_bm.m_hObject) { BITMAP bm; m_bm.GetBitmap(&bm); CDC memdc; memdc.CreateCompatibleDC(&dc); memdc.SelectObject(&m_bm); CRect clientRect; GetClientRect(&clientRect); CRect statusRect; m_status.GetWindowRect(statusRect); ScreenToClient(statusRect); dc.BitBlt(clientRect.right - bm.bmWidth - 1, statusRect.CenterPoint().y - bm.bmHeight / 2, bm.bmWidth, bm.bmHeight, &memdc, 0, 0, SRCCOPY); } }
CBCGPOleCntrFrameWnd::~CBCGPOleCntrFrameWnd() { POSITION pos = NULL; for (pos = m_dockManager.m_lstMiniFrames.GetHeadPosition (); pos != NULL;) { CBCGPMiniFrameWnd* pNextFrame = DYNAMIC_DOWNCAST (CBCGPMiniFrameWnd, m_dockManager.m_lstMiniFrames.GetNext (pos)); if (pNextFrame != NULL) { pNextFrame->DestroyWindow (); } } CList<HWND, HWND> lstChildren; CWnd* pNextWnd = GetTopWindow (); while (pNextWnd != NULL) { lstChildren.AddTail (pNextWnd->m_hWnd); pNextWnd = pNextWnd->GetNextWindow (); } for (pos = lstChildren.GetHeadPosition (); pos != NULL;) { HWND hwndNext = lstChildren.GetNext (pos); if (IsWindow (hwndNext) && ::GetParent (hwndNext) == m_hWnd) { ::DestroyWindow (hwndNext); } } const CObList& list = CBCGPToolBar::GetAllToolbars (); CObList& gAllToolbars = const_cast<CObList&>(list); for (pos = gAllToolbars.GetHeadPosition (); pos != NULL;) { POSITION posSave = pos; CBCGPToolBar* pToolBar = (CBCGPToolBar*) gAllToolbars.GetNext (pos); ASSERT (pToolBar != NULL); if (CWnd::FromHandlePermanent (pToolBar->m_hWnd) == NULL) { gAllToolbars.RemoveAt (posSave); } } }
void CLayoutManager::Offset(int cx, int cy) { CWnd * pWnd; CRect r; CSize delta(cx,cy); for (pWnd = m_pWnd->GetWindow(GW_CHILD); pWnd; pWnd = pWnd->GetNextWindow()) { pWnd->GetWindowRect(&r); m_pWnd->ScreenToClient(&r); r += delta; pWnd->MoveWindow(&r); } }
bool CMpegSplitterSettingsWnd::OnActivate() { int nPosY = 10; m_grpDefault.Create (ResStr(IDS_OPTIONS_CAPTION), WS_VISIBLE|WS_CHILD | BS_GROUPBOX, CRect (10, nPosY, 320, nPosY+230), this, (UINT)IDC_STATIC); nPosY += VERTICAL_SPACING; m_cbFastStreamChange.Create (ResStr(IDS_MPEGSPLITTER_FSTREAM_CHANGE), WS_VISIBLE|WS_CHILD|WS_TABSTOP|BS_AUTOCHECKBOX|BS_LEFTTEXT, CRect (LEFT_SPACING, nPosY, 305, nPosY+15), this, IDC_PP_FAST_STREAM_SELECT); nPosY += VERTICAL_SPACING; m_txtAudioLanguageOrder.Create (ResStr(IDS_MPEGSPLITTER_LANG_ORDER), WS_VISIBLE|WS_CHILD, CRect (LEFT_SPACING, nPosY, 200, nPosY+15), this, (UINT)IDC_STATIC); nPosY += 15; m_edtAudioLanguageOrder.CreateEx(WS_EX_CLIENTEDGE, _T("EDIT"), _T(""), WS_CHILD|WS_VISIBLE|WS_TABSTOP, CRect (LEFT_SPACING, nPosY, 305, nPosY+20), this, IDC_PP_AUDIO_LANGUAGE_ORDER); nPosY += VERTICAL_SPACING; m_txtSubtitlesLanguageOrder.Create (ResStr(IDS_MPEGSPLITTER_SUB_ORDER), WS_VISIBLE|WS_CHILD, CRect (LEFT_SPACING, nPosY, 200, nPosY+15), this, (UINT)IDC_STATIC); nPosY += 15; m_edtSubtitlesLanguageOrder.CreateEx(WS_EX_CLIENTEDGE, _T("EDIT"), _T(""), WS_CHILD|WS_VISIBLE|WS_TABSTOP, CRect (LEFT_SPACING, nPosY, 305, nPosY+20), this, IDC_PP_SUBTITLES_LANGUAGE_ORDER); nPosY += VERTICAL_SPACING; m_txtVC1_GuidFlag.Create (ResStr(IDS_MPEGSPLITTER_VC1_GUIDFLAG), WS_VISIBLE|WS_CHILD, CRect (LEFT_SPACING, nPosY, 200, nPosY+15), this, (UINT)IDC_STATIC); nPosY += 15; m_cbVC1_GuidFlag.Create (WS_VISIBLE|WS_CHILD|CBS_DROPDOWNLIST|WS_VSCROLL, CRect (LEFT_SPACING, nPosY, 305, nPosY+20), this, IDC_PP_VC1_GUIDFLAG); m_cbVC1_GuidFlag.AddString (_T("Default")); m_cbVC1_GuidFlag.AddString (_T("Cyberlink VC-1 Decoder")); m_cbVC1_GuidFlag.AddString (_T("ArcSoft VC-1 Decoder")); SetClassLongPtr(GetDlgItem(IDC_PP_VC1_GUIDFLAG)->m_hWnd, GCLP_HCURSOR, (long) AfxGetApp()->LoadStandardCursor(IDC_HAND)); if(m_pMSF) { m_cbFastStreamChange.SetCheck(m_pMSF->GetFastStreamChange()); m_edtAudioLanguageOrder.SetWindowText(m_pMSF->GetAudioLanguageOrder()); m_edtSubtitlesLanguageOrder.SetWindowText(m_pMSF->GetSubtitlesLanguageOrder()); m_cbVC1_GuidFlag.SetCurSel(m_pMSF->GetVC1_GuidFlag() - 1); } #ifndef REGISTER_FILTER m_edtAudioLanguageOrder.EnableWindow(FALSE); m_edtSubtitlesLanguageOrder.EnableWindow(FALSE); #endif for(CWnd* pWnd = GetWindow(GW_CHILD); pWnd; pWnd = pWnd->GetNextWindow()) { pWnd->SetFont(&m_font, FALSE); } return true; }
void CScrollableDialog::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* /*pScrollBar*/) { // calc new y position int y = GetScrollPos(SB_VERT); int yOrig = y; switch (nSBCode) { case SB_TOP: y = 0; break; case SB_BOTTOM: y = INT_MAX; break; case SB_LINEUP: y -= 10; break; case SB_LINEDOWN: y += 10; break; case SB_PAGEUP: y -= 100; break; case SB_PAGEDOWN: y += 100; break; case SB_THUMBTRACK: y = nPos; break; } SetScrollPos(SB_VERT, y); y = GetScrollPos(SB_VERT); if (y != yOrig) { /* Now ScrollWindow(0, yOrig-y) is SUPPOSED to move all the child windows and in normal Win32 it does, but in WinCE it doesn't. All documentation says that it does, but to damn well DOESN'T. */ for (CWnd * pChild = GetWindow(GW_CHILD); pChild != NULL; pChild = pChild->GetNextWindow(GW_HWNDNEXT)) { CRect rect; pChild->GetWindowRect(&rect); ScreenToClient(&rect); pChild->SetWindowPos(NULL, rect.left, rect.top+(yOrig-y), 0, 0, SWP_NOSIZE|SWP_NOACTIVATE|SWP_NOZORDER); } } }
BOOL CPlayerWindow::OnEraseBkgnd(CDC* pDC) { for(CWnd* pChild = GetWindow(GW_CHILD); pChild; pChild = pChild->GetNextWindow()) { if(!pChild->IsWindowVisible()) continue; CRect r; pChild->GetClientRect(&r); pChild->MapWindowPoints(this, &r); pDC->ExcludeClipRect(&r); } CRect r; GetClientRect(&r); pDC->FillSolidRect(&r, 0); return TRUE; }
void setControlText(int id, CWnd *wnd) { const String title = getWindowText(wnd); if(title.length() > 0 && title[0] == '{') { String newTitle = loadString(id); wnd->SetWindowText(newTitle.cstr()); } for(CWnd *child = wnd->GetWindow(GW_CHILD); child; child = child->GetNextWindow()) { // id = child->GetDlgCtrlID(); const String text = getWindowText(child); if(text.length() > 0 && text[0] == '{') { const String label = loadString(child->GetDlgCtrlID()); if(label.length() > 0) { setWindowText(child, label); } } } }
void PresetHotkeyGroup::ResizeToContent() { int x = 0; int y = 0; for (CWnd *pWnd = GetWindow(GW_CHILD); pWnd != NULL; pWnd = pWnd->GetNextWindow(GW_HWNDNEXT)) { //Insert your code here. pWnd is a pointer to control window. CRect rect; pWnd->GetWindowRect(rect); y = max(rect.bottom, y); x = max(rect.right, x); } CRect rect; GetWindowRect(rect); rect.right = x; rect.bottom = y; MoveWindow(rect); }
//*************************************************************************************** void CBCGPOleDocIPFrameWnd::OnDestroy() { if (CBCGPPopupMenu::GetActiveMenu () != NULL) { CBCGPPopupMenu::GetActiveMenu ()->SendMessage (WM_CLOSE); } if (g_pBCGPTopLevelFrame == this) { CFrameWnd* pTopLevelFrame = DYNAMIC_DOWNCAST (CFrameWnd, CWnd::FromHandlePermanent (m_hwndLastTopLevelFrame)); g_pBCGPTopLevelFrame = pTopLevelFrame; } m_Impl.DeactivateMenu (); if (m_hAccelTable != NULL) { ::DestroyAcceleratorTable (m_hAccelTable); m_hAccelTable = NULL; } m_dockManager.m_bEnableAdjustLayout = FALSE; CList<HWND, HWND> lstChildren; CWnd* pNextWnd = GetTopWindow (); while (pNextWnd != NULL) { lstChildren.AddTail (pNextWnd->m_hWnd); pNextWnd = pNextWnd->GetNextWindow (); } for (POSITION pos = lstChildren.GetHeadPosition (); pos != NULL;) { HWND hwndNext = lstChildren.GetNext (pos); if (IsWindow (hwndNext) && ::GetParent (hwndNext) == m_hWnd) { ::DestroyWindow (hwndNext); } } COleDocIPFrameWnd::OnDestroy(); }
bool CMPCVideoDecCodecWnd::OnActivate() { DWORD dwStyle = WS_VISIBLE|WS_CHILD|WS_BORDER; int nPos = 0; MPC_VIDEO_CODEC nActiveCodecs = (MPC_VIDEO_CODEC)(m_pMDF ? m_pMDF->GetActiveCodecs() : 0); m_grpSelectedCodec.Create (_T("Selected codecs"), WS_VISIBLE|WS_CHILD | BS_GROUPBOX, CRect (10, 10, 330, 280), this, IDC_STATIC); m_lstCodecs.Create (dwStyle | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP, CRect (20,30, 320, 270), this, 0); m_lstCodecs.AddString (_T("H.264/AVC (DXVA)")); m_lstCodecs.SetCheck (nPos++, (nActiveCodecs & MPCVD_H264_DXVA) != 0); m_lstCodecs.AddString (_T("H.264/AVC (FFmpeg)")); m_lstCodecs.SetCheck (nPos++, (nActiveCodecs & MPCVD_H264) != 0); m_lstCodecs.AddString (_T("VC1 (DXVA)")); m_lstCodecs.SetCheck (nPos++, (nActiveCodecs & MPCVD_VC1_DXVA) != 0); m_lstCodecs.AddString (_T("VC1 (FFmpeg)")); m_lstCodecs.SetCheck (nPos++, (nActiveCodecs & MPCVD_VC1) != 0); m_lstCodecs.AddString (_T("Xvid")); m_lstCodecs.SetCheck (nPos++, (nActiveCodecs & MPCVD_XVID) != 0); m_lstCodecs.AddString (_T("DivX")); m_lstCodecs.SetCheck (nPos++, (nActiveCodecs & MPCVD_DIVX) != 0); m_lstCodecs.AddString (_T("MS-MPEG4")); m_lstCodecs.SetCheck (nPos++, (nActiveCodecs & MPCVD_MSMPEG4) != 0); m_lstCodecs.AddString (_T("FLV1/4")); m_lstCodecs.SetCheck (nPos++, (nActiveCodecs & MPCVD_FLASH) != 0); m_lstCodecs.AddString (_T("VP5/6")); m_lstCodecs.SetCheck (nPos++, (nActiveCodecs & MPCVD_VP6) != 0); m_lstCodecs.AddString (_T("WMV1/2/3")); m_lstCodecs.SetCheck (nPos++, (nActiveCodecs & MPCVD_WMV) != 0); m_lstCodecs.AddString (_T("H.263")); m_lstCodecs.SetCheck (nPos++, (nActiveCodecs & MPCVD_H263) != 0); m_lstCodecs.AddString (_T("SVQ1/3")); m_lstCodecs.SetCheck (nPos++, (nActiveCodecs & MPCVD_SVQ3) != 0); m_lstCodecs.AddString (_T("AMV video")); m_lstCodecs.SetCheck (nPos++, (nActiveCodecs & MPCVD_AMVV) != 0); m_lstCodecs.AddString (_T("Theora")); m_lstCodecs.SetCheck (nPos++, (nActiveCodecs & MPCVD_THEORA) != 0); for(CWnd* pWnd = GetWindow(GW_CHILD); pWnd; pWnd = pWnd->GetNextWindow()) pWnd->SetFont(&m_font, FALSE); return true; }
HWND CWindowFind::GetChildWindow(HWND hwnd,int iIndex) { HWND hwndChind = NULL; CString strTemp = ""; int i = 1; hwndChind = GetWindow(hwnd,GW_CHILD); CWnd *pWnd = CWnd::FromHandle(hwndChind); while (pWnd) { hwndChind = pWnd->GetSafeHwnd(); if (i == iIndex) { return hwndChind; } pWnd = pWnd->GetNextWindow(GW_HWNDNEXT); i++; } return hwndChind; }