ネットワークドライブを接続・切断する

ネットワークドライブの操作にはWNetAddConnection2 APIを使います。

	NETRESOURCE NetResource;
	NetResource.dwType		= RESOURCETYPE_ANY;
	NetResource.lpLocalName = _T("W:");
	NetResource.lpRemoteName = _T("\\\\TEST\\ABC");
	NetResource.lpProvider	= NULL;

	DWORD Ret =WNetAddConnection2(
		&NetResource,  // 接続の詳細
		NULL,           // パスワード
		NULL,           // ユーザー名
		CONNECT_UPDATE_PROFILE    // 接続オプション
	);

»Read More

外部アプリケーションを起動する

ShellExecuteを使って起動できます。

ShellExecute(NULL, "open", "cmd", NULL, NULL,SW_SHOWNORMAL);

»Read More

[CMenu] サブメニューのある項目を無効にする

EnableMenuItemにて状態を設定します。

CWnd*	pWnd = AfxGetMainWnd();
CMenu*	pMenu = pWnd->GetMenu();
int	MenuCount = pMenu->GetMenuItemCount();

for(int i=0; i<MenuCount; i++){
  CString str;
  pMenu->GetMenuString(i, str, MF_BYPOSITION);

  if("TEST"== str.Left(MenuName.GetLength())){

    pMenu->EnableMenuItem(i, MF_BYPOSITION | MF_DISABLED | MF_GRAYED);
    pWnd->DrawMenuBar();
  }
}

»Read More

[CMenu] メニュー項目を無効にする

ON_UPDATE_COMMAND_UIのメッセージをとり、そのイベント内で切り替えます。

//ON_UPDATE_COMMAND_UI(ID_MENU1, OnUpdateTest)
void CApp::OnUpdateTest(CCmdUI* pCmdUI)
{
	// TODO: この位置に command update UI ハンドラ用のコードを追加してください

        if(表示条件){
	   pCmdUI->Enable(FALSE);
        else{
	   pCmdUI->Enable(TRUE);
        }
}

»Read More

[CComboBox] 全アイテムを消去する

メンバ関数ResetContentで全て消去できます。

CComboBox* pCombo=(CComboBox*)GetDlgItem(IDC_COMBO);
pCombo->ResetContent();

アイテムカウントをとってforで回して消去するような必要はありません。
初期化するときに便利です。

[CComboBox] 選択位置を取得する

メンバ関数GetCurSelにて現在の選択位置を取得します。

»Read More

[CComboBox] 選択したアイテムを削除する

コンボボックスのメンバ関数DeleteStringにて行います。
»Read More

ファイルからアイコンを取得する

SHGetFileInfo関数を使い取得します。
»Read More

指定のファイルを関連付けたアプリケーションで実行する

ShellExecute関数によって行います。

::ShellExecute( NULL , "open" , "ファイル名" , NULL , NULL , SW_SHOWNORMAL );

[CView] Viewの画面を分割する

MainFrameの分割はCSplitterWndにて行います。

»Read More

[CDialog] タイトルバーを削除する

ダイアログのタイトルバーを削除するには
ダイアログプロパティの「Title Bar」をFALSEに設定します。

»Read More

[CListCtrl] 列、行追加などの基本的な操作

列の追加はInsertColumn
行の追加はInsertItem

// CListCtrl	 m_list;ヘッダーで定義
CString str = _T("aaa");
m_list.InsertColumn(0, str, LVCFMT_LEFT, 100);
m_list.InsertColumn(0, str, LVCFMT_LEFT, 100);
m_list.InsertColumn(0, str, LVCFMT_LEFT, 100);
m_list.InsertColumn(0, str, LVCFMT_LEFT, 500);
m_list.InsertColumn(0, str, LVCFMT_LEFT, 500);

for(int Item=0; Item<10; Item++){
	m_list.InsertItem(Item,L"0");
	m_list.SetItemText(Item, 1,  L"1");
	m_list.SetItemText(Item, 2,  L"2");
	m_list.SetItemText(Item, 3,  L"3");
}

»Read More

[CFileDialog] ダイアログのタイトルを変更する

CFileDialogメンバ変数:m_ofnのlpstrTitleに表示したいタイトルを入れます。

  CString setting = _T("実行ファイル(*.exe)|*.exe|全て(*.*)|*.*||");
  CFileDialog dlg(TRUE, _T("*.exe"),_T(""), OFN_HIDEREADONLY | OFN_FILEMUSTEXIST, setting, this);
  dlg.m_ofn.lpstrTitle = _T("ここがタイトルになる。");

  dlg.DoModal();

»Read More

コントロールの重なりを変更する

タブオーダーの変更によって、コントロールが描画される順番を変更できます。
»Read More

Visual StudioとSubversionを簡単連携してくれるプラグイン AnkhSVN

AnkhSVN-フリーソフト

The 100% Opensource Source Code Management Solution for Microsoft Visual Studio.

Microsoft Visual Studioの100%オープンソースなソースコード管理ソリューション。とか?そんな感じでしょうか。

Visual Studio上からSubversionにコミットできるようになるプラグインです。
»Read More