MFC
[vc][mfc] ファイル単体の存在チェック CFileFind find; CString filePath = _T("C:\\foo.bar"); if( find.FindFile( filePath ) ){ // ファイルが存在 } フォルダ内ファイルの存在チェック 以下の例ではでファイル名の条件を指定。 CFileFind find; CString…
[vc][mfc]引数の前後にスペースが混じっちゃってるとか、イージーミスの可能性大。 FTPの環境設定に誤りがあると考えられます。以下を確認してください。 FTPアカウント 性能情報出力画面のFTP環境設定により、運用管理サーバに登録されたアカウントが正しく…
[vc][mfc]メモ 典型的な FTP クライアント アプリケーションの作成手順 FTPクライアントを作る1 ↑開放処理が抜けてるコードなので注意。後始末はこうやる必要があるよ。 if (m_ftpConP){ m_ftpConP->Close(); delete m_ftpConP; m_ftpConP = NULL; } if (m_…
悩み中。ぐぐったら同じ悩みがキャッシュにしか残ってなかったので復刻メモ。 [mfc 38519] CListCtrl::DrawItem()でのバグ 2002.03.07 いつも大変お世話になっております。 CListCtrlの派生クラスCListCtrlExを作ってオーナー描画を行っています。 このクラ…
タブで移動してEnterという処理で使ったりする CButton *btn = (CButton*)this->GetDlgItem(IDC_BUTTON_SEARCH); if( btn->GetState() & 0x0008 ){ // フォーカス状態を調べます。0 以外の値のときは、ボタンにフォーカスがあることを示します。 //<フォーカ…
// strにチェック前文字列が入っています。 CString res = str.SpanIncluding("0123456789"); if(res == str){ AfxMessageBox(_T("これは数字なり〜")); } ネタ元 http://blog.mylab.jp/20040831.html http://msdn.microsoft.com/ja-jp/library/2fhyz756(v=v…
[書式] メニューの [タブ オーダー] をクリックします。 各コントロールの左上隅にある番号は、現在のタブ オーダーでの位置を示します。 Tab キーに対応する順序で各コントロールをクリックして、タブ オーダーを設定します。 ネタ元 http://msdn.microsoft…
BOOL CStockSearchDialog::OnInitDialog() { CDialog::OnInitDialog(); // テキストボックスにフォーカスをあわせる CEdit* pEdit = (CEdit*)this->GetDlgItem(IDC_EDIT_QUERY); pEdit->SetFocus(); pEdit->SetSel(0, -1); return FALSE; return TRUE; // re…
リストをコントロールするにはGetListCtrl()でポインタGETして操作 long count= 0,item = 0; CListCtrl &cList = m_pList->GetListCtrl(); item = cList.GetNextItem(-1, LVNI_ALL|LVNI_SELECTED); while ( item != -1 ){ CTarget *target = ( CTarget * )m_…
ShellExecute()を使う。 例: ShellExecute(NULL, "open", csOutputFolderPath, NULL, NULL, SW_SHOWNORMAL);ネタ元 http://ist.mns.kyutech.ac.jp/fswiki/wiki.cgi?page=%BB%D8%C4%EA%A4%B7%A4%BF%A5%D5%A5%A9%A5%EB%A5%C0%A4%F2%A5%A8%A5%AF%A5%B9%A5%D7%A…
ギャフン!指定変わっちゃうのかいな。やられた。 ネタ元 CDC::FillSolidRect
デバッガで追ってみたら、こうだったけどなぁ?間違ってるのかしら。親DestroyWindow() ↓ 子DestroyWindow() ↓ 子OnDestroy() ↓ 親OnDestroy()ネタ元 http://keicode.com/winprimer/wp15.php http://msdn.microsoft.com/ja-jp/library/2eahe3wf(v=vs.80).aspx
_TrackMouseEvent()を使ってOnMouseLeave()に飛ぶように設定する。 Cソース BEGIN_MESSAGE_MAP(CImageButton, CButton) //{{AFX_MSG_MAP(CImageButton) … ON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave) //}}AFX_MSG_MAP END_MESSAGE_MAP()void CImageButton::OnM…
ShowScrollBar()で消せるけど、OnPaint()等、描画のタイミングで常に指定しないと、また出てきちゃうよ ネタ元 http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+201008/10080015.txt
GetWindowLong()を使用すれば可能。 //リストビューハンドルを取る HWND hList = ::GetDlgItem(hDlg, IDC_LIST1); //リストビューハンドルのスタイルを取る const DWORD dwStyle = ::GetWindowLong(hList, GWL_STYLE); //以下の方法で確認できるようです if(…
ツールヒントとも言うみたい。 CToolTipCtrl というクラスで簡単実装 ネタ元 ツールチップコントロールを表示させる
ネタ元 http://7ujm.net/C++/CCButton.h.html このコードをみれば普通のボタンの描画手順が分かる。 ボタン部分の背景を塗りつぶして FillRect() 色はGetSysColor(COLOR_BTNFACE) テキストを描いて(無効なら無効色で描く) DrawText() ボタンの立体表現を描…
VC++6。MFC ClassWizardを使わない/使えない時に手動でやる方法。WM_ERASEBKGND以外のメッセージも同様。 ヘッダ(.h)の // 生成されたメッセージ マップ関数 というコメントがあるとこの //{{AFX_MSG(CTabWnd) と //}}AFX_MSG に囲まれた中に afx_msg …
OnPaint()など、描画前にやっとけばいいと思う CButton btn; … long style = btn.GetButtonStyle(); style &= ~BS_DEFPUSHBUTTON; btn.SetButtonStyle(style);
POINT point; GetCursorPos(&point); ScreenToClient(&point); ネタ元 http://www.game-create.com/archives/306
通常、クライアント領域から離れてしまえば、マウス関連のメッセージが飛んでこなくなるので、SetCapture()で捕まえておいて、外れるときにReleaseCapture()で解放する。 例: void CHogeButton::OnMouseMove(UINT nFlags, CPoint point) { CRect rect; GetCl…
背景のクリアを防ぎたいと思って、ClassWizardでWM_ERASEBKGRNDを追加しようとしても、見当たらない。 これはフィルタされているのが原因。ClassWizard を使わずに手書きしてもいいけど、ClassWizardでも使えるようにできる。 ClassWizard を開き、「クラス…
VC2005だとCDCにTransparentBlt()関数が追加されたみたい。 哀しいかなVC6で作ることになってしまったら、BitBlt関数の代わりに msimg32.libをリンクして、::TransparentBlt()を使うといいです。ヘルプはこちら http://msdn.microsoft.com/ja-jp/library/c…
オーバーライドしただけじゃ自前DrawItem()が呼ばれないので注意。 ネタ元 http://www12.ocn.ne.jp/~wildcat/program/custombtn1/custombutton1.html http://wisdom.sakura.ne.jp/system/winapi/win32/win61.html
引数 LPDRAWITEMSTRUCT lpDrawItemStructの itemStateにはOwner draw stateが入っている。 つまりODS_SELECTED / ODS_GRAYED / ODS_DISABLED とか。 http://lhsp.s206.xrea.com/misc/ownerdraw.html dcは CDC *dc = CDC::FromHandle(lpDrawItemStruct->hDC);…
SetWindowText()/GetWindowText()でどうぞ
画面更新を行うときに使う。どちらでもWM_PAINTが呼ばれるみたい。
初級から中級までの道のりが簡潔に紹介されてます。http://t-recipe.com/index.html
データメンバのm_ofn(OPENFILENAME構造体)のlpstrFileに ファイル名を保存するバッファのアドレスを新しく割り当ててやります。 この時、用意したバッファの内容が0で埋め尽くされていないとエラーが発生するので 割り当てる前に初期化する必要があります。 …
OFN_ALLOWMULTISELECTを設定するhttp://akky.cjb.net/mfc/manyfile.html