【VCコントロール】コントロールとポップアップメニューの文字内容とサイズを動的に変更する

1859 ワード

構想:各国の言語によって、異なる言語パッケージのDLLを構築する.
::MessageBoxW(NULL,cla_kodlogic->GetMsgString(1712),cla_kodlogic->GetMsgString(1716),MB_OK);
上の1712および1716は、DLLの文字列に対応するインデックスである.
1.フォームのCaption:1を動的に変更します.AfxGetMainWnd()->SetWindowText(「テストタイトル」)2.this->SetWindowText(「テストタイトル」);
2.メニューポップアップのテキストを動的に変更するには:
		DWORD dwPos = GetMessagePos();
		CPoint point( LOWORD(dwPos), HIWORD(dwPos) );

		CMenu menu;
		VERIFY( menu.LoadMenu( IDR_R_MENU ) );
		CMenu* popup = menu.GetSubMenu(0);
		ASSERT( popup != NULL );
		popup->ModifyMenu(ID_32771,MF_POPUP,ID_32771,cla_kodlogic->GetMsgString(1714));
		popup->ModifyMenu(ID_32772,MF_POPUP,ID_32772,cla_kodlogic->GetMsgString(1715));

		popup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this );

popup->
ModifyMenu(ID_32771,MF_POPUP,ID_32771,cla_kodlogic->GetMsgString(1714));
popup->ModifyMenu(ID_32772,MF_POPUP,ID_32772,cla_kodlogic->GetMsgString(1715));
上の2つの文は、メニューのポップアップ・アイテムを動的に変更するテキストの内容です.
(ModifyMenu関数でのパラメータの具体的な意味は、以下を参照してください.http://www.programfan.com/doc/vbapi/ModifyMenu.htm )
3.リストコントロール内のテキストの表示サイズを変更します(OnInitDialog関数に追加すればいい):
	CFont* font = GetFont();
	
	static CFont g_Font;
	if (font)
	{
		LOGFONT lf;
		font->GetLogFont(&lf);
		//lf.lfWeight = 1;
		lf.lfHeight += 25;
		lf.lfWidth += 6;
		g_Font.CreateFontIndirect(&lf);
		// Newdfont.CreatePointFont(160, " ");
		//CListCtrl &m_List = GetListCtrl();
		m_ListSong.SetFont(&g_Font,TRUE);
		m_ListSinger.SetFont(&g_Font,TRUE);
	
		CWnd *pCtrltrol=NULL;
		if(NULL != (pCtrltrol = GetDlgItem(IDC_STATIC_SONGLIST)) )
			pCtrltrol->SetFont(&g_Font,TRUE);
       }

m_ListSinger.
SetFont(&g_Font,TRUE);
上の文はフォントサイズを設定する関数で、プロジェクト全体のフォントを設定するには改善が必要です.