ホーム » 2009
年別アーカイブ: 2009
Tool Bar のドロップダウンボタン
VC7 exe で,ビジュアルスタイルが有効な時,ツールバーの幅が正しくない
VC7.1 もNG VC8 以降では OK
VC6 exe で,リサイズした時ダウン
2009/06/18 10:48
http://cid-535f5973454c1292.skydrive.live.com/self.aspx/.Public/MFC/%e3%83%84%e3%83%bc%e3%83%ab%e3%83%90%e3%83%bc%e3%81%ae%e3%83%89%e3%83%ad%e3%83%83%e3%83%97%e3%83%80%e3%82%a6%e3%83%b3%e3%83%9c%e3%82%bf%e3%83%b3.txt
ツールバーのドロップダウンボタン.txt
2010/09/02 ツールバーにドロップダウンボタン
MFC DLL → Static
Open Dialog , Print Preview でのエラー
ダイアログの DDV でメッセージなし(アイコンのみ)
VC7 で 共有DLL ⇒ Static DLL に変更した場合
Vista で Common Ctrl 6 が有効にならない |
Project . Manifest の不備 Neme = …. Project |
確認済 |
Print Preview DDV |
「リソース」-「全般」のプリプロセッサを削除 _AFXDLL を削除 |
確認済 |
LNK2019: 未解決の… _mainCRTStartup で.. |
「リンカ」-「システム」-「サブシステム」が 設定なしになっている |
? |
fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds |
ソースのプロパティに _AFXDLL が含まれているのでそれを削除
補足(static ⇒ 共有に戻した時) $(NoInherit) を削除する必要もあった
VS2010β2 で「C++」–「Runtime Library」を /MD ⇒ /MT |
確認済 |
2009/06/17 22:46
2009/09/16 10:45 追加
2009/10/21 10:04 追加
2009/11/27 17:20 追加
UNICODE と VC6 → VC8
VC6 UNICODE
wWinMainCRTStartup
VC6 → VC8
http://cid-535f5973454c1292.skydrive.live.com/self.aspx/.Public/MFC/VC6%e2%86%92VC8.txt
VC6→VC8.txt
「プリコンパイル済みヘッダファイル」 | $(IntDir)/$(TargetName).pch |
「C/C++」-「出力ファイル」 「ASMリスト...」 「オブジェクト...」 「プログラムデータベース...」 |
$(IntDir)/ |
「リンカ」-「全般」の「出力ファイル」 | $(OutDir)/$(ProjectName).exe |
リンカ」-「デバッグ」 「プログラムデータベースファイルの生成」 |
$(OutDir)/$(ProjectName).pdb |
「リソース」-「全般」の「リソースファイル名」 | $(IntDir)/$(InputName).res |
「MIDL」-「出力」の「タイプライブラリ」 | $(IntDir)/$(ProjectName).tlb |
「ブラウザ情報」-「全般」の「出力ファイル」 | $(OutDir)/$(ProjectName).bsc |
コンテキストメニューで MK_SHIFT , MK_CONTROL
switch (message) { case WM_MOUSEMOVE : Mouse.Move(Wnd,point) ; return TRUE ; break ; case WM_RBUTTONUP : return Context (msg) ; break ; case WM_CONTEXTMENU : return Context (msg) ; break ; case WM_COMMAND : return Command (msg) ; break ; default : break ; }
// MK_SHIFT | MK_CONTROL が押されている場合は,WM_RBUTTONUP で処理している BOOL ????????::Context (const MSG* msg) { WPARAM nFlags = GetMouseFlags (msg) ; // キーフラグ // CPoint point = GetClientPoint(msg) ; // カーソル位置 { UINT message = GetMessage(msg) ; // メッセージ番号 if (message == WM_RBUTTONUP) { if (nFlags & MK_CONTROL) { ; } else if (nFlags & MK_SHIFT) { ; } else { return FALSE ; } } else { // WM_CONTEXTMENU の時は,キーの状態は無効 nFlags = 0 ; } } // if (???????->PopupSelect(nFlags,point,TRUE)) { return TRUE ; } // ... }
Windows 7 のタスクバー(進行状況バー)
ITaskbarList3* GetITaskbarList3 (void)
{
ITaskbarList3* pTL3 = NULL ;
HRESULT hr = NULL ;
hr = CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER,IID_ITaskbarList3, (void**)&pTL3) ;
if (hr == NOERROR) {
return pTL3 ;
}
return NULL ;
}
if (TL3 != NULL) {
TL3->SetProgressState(this->GetSafeHwnd(),TBPF_NORMAL) ;
}
TL3->SetProgressValue(this->GetSafeHwnd(),Counter,100) ;
}