MFC
CString str = _T("C:\\aafafadfas\\hytgafsdfd\\fklwaetaf\\pickup.txt"); str = str.Right(str.GetLength()-str.ReverseFind(_T('\\'))-1); ネタ元 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12115067447
TCHAR tmpDir[MAX_PATH]; GetTempPath(MAX_PATH, tmpDir); TCHAR tmpFilename[MAX_PATH]; GetTempFileName(tmpDir,"tmp",(UINT)pos,tmpFilename); ネタ元 https://msdn.microsoft.com/ja-jp/library/cc429354.aspx
struct StructHoge { int number; }; ・・・ CArray <StructHoge, StructHoge> arrayHoge; ・・・ int compareHoge(void* context, const void* a1, const void* a2) { StructHoge* p1 = (StructHoge*)a1; StructHoge* p2 = (StructHoge*)a2; if (p1->number != p2->number) { return</structhoge,>…
GetWindowRect()で情報を得る void ChangeEdit2Height(){ // 文字列の取得 CString strBuff; int nstrLen = ce2.GetWindowTextLength() + 2; ce2.GetWindowText(strBuff.GetBuffer(nstrLen), nstrLen); strBuff.ReleaseBuffer(); // IDC_Edit2のサイズ変更 C…
シンプルにforループ for (int i = 0; i < array.GetSize(); i++) { str = str + array[i] + "\r\n"; } ネタ元 http://www7b.biglobe.ne.jp/~makandat/VC/Group17/CArray.htm
リソースエディタでラジオボタンを配置する グループにしたいラジオボタンのうち、最初のタブオーダーのラジオボタンだけ「Group」をTrueにします。他はデフォルトのままでOK DDX変数を追加しましょう。グループの最初のラジオボタンを右クリックし、「変数…
SetWindowPos() の第一引数に &wndTopMost を指定 SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_SHOWWINDOW); ネタ元 www.alato.ne.jp atelier-peppe.jp
CButton *button=(CButton*)GetDlgItem(IDC_BUTTON1); // 使用禁止 button->EnableWindow(FALSE); // 使用許可 button->EnableWindow(TRUE); ネタ元 http://rarara.cafe.coocan.jp/vc/vctips/button.htm
超簡単サンプルです。ファイルの全部読み込みとか なーんもやってない。 { LPTSTR lpszBuf=(LPTSTR)GlobalAlloc(GPTR,1024); /* ハンドル作成 */ HINTERNET hInet=InternetOpen(_T("TEST"),INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0); /* URLオープン */ HINTE…
SetBkColor(hdc , RGB(0xFF , 0 , 0));ネタ元 http://wisdom.sakura.ne.jp/system/winapi/win32/win21.html
/************************************************* 関数名 DrawStringToHDC 機能 メモリデバイスコンテキストに文字列を出力 iXsize : 出力画像の幅(Width) iYpos : 縦方向の出力位置 *************************************************/ void DrawStrin…
// 日の丸を作成 // メモリ上にデバイス独立ビットマップを(DIB)作成する。 ZeroMemory(&bmp,sizeof(bmp)); bmp.bmiHeader.biSize=sizeof(BITMAPINFOHEADER); bmp.bmiHeader.biBitCount=32; bmp.bmiHeader.biPlanes=1; bmp.bmiHeader.biWidth=IMAGE_WIDTH; b…
#define WM_ORIGINALMSG WM_USER+1000って感じでメッセージ作るネタ元 http://i-hptetsu.programming.jp/archives/519
まだ実装中。いいサンプルはこれ http://www50.tok2.com/home2/StillGreen/knowledge/program/listview.htm LVS_系のメッセージ受け取るにはSetExtendedStyleでLVS_REPORT指定してないとだめ https://msdn.microsoft.com/ja-jp/library/2hxsby1h.aspx ネタ元…
SetMenuItemInfoで変更できます。 TCHAR buf[] = TEXT("新メニュー文字列"); MENUITEMINFO mii = { sizeof(mii) }; mii.fMask = MIIM_STRING; mii.dwTypeData = buf; pMenu->SetMenuItemInfo(2, &mii, TRUE);セパレータも意識して項目の順番指定してね。 Set…
標準ではないので、CTypedPtrListを使って作るAddToEnd()で追加してGetFromFront()で取得。 // キュークラス // AddToEnd()にはnewしたオブジェクトを渡して // GetFromFront()した後はコール元でdeleteすること。 class CMyQueue : public CTypedPtrList< C…
1.CFrameWndクラスのm_bAutoMenuEnableメンバがTRUEなってないかチェック2.BEGIN_MESSAGE_MAPの中にON_UPDATE_COMMAND_UIの指定が無いかチェック 上記があるといくら設定しても効きません。ネタ元 http://specialprovidence.at.webry.info/201007/article_72…
ShellExecute()を使ってURL文字列をopenするだけ bool OpenUrl(LPCTSTR lpszUrl) { HINSTANCE hInst = ShellExecute(NULL,"open",lpszUrl,NULL,NULL,SW_SHOWNORMAL); if(hInst < (HINSTANCE)32){ // 32未満は起動に失敗 return false; } retuen true; } ネタ…
OpenFile()で受け取ったCInternetFileのポインタはClose()した後、deleteする必要あるみたいどこにもそんなん書いてないんだけどな。
適当にテスト。 当然ながらKeyがlongでInitHashTable()したやつがいっちゃん速かった。 Key:CStringと比べて数倍早い // Key:CStringでInitHashTable()なし // CString keyがループの中 { long tick = GetTickCount(); CMap<CString ,LPCTSTR,long,long& > mapdata; for(int i=0;i<1000000;</cstring>…
リソースエディタでメニュー作って以下のようなコードで呼び出す。 // "右クリック" void CMenuDlg::OnRButtonUp(UINT nFlags, CPoint point) { CMenu *popupMenuP = NULL; CMenu cMenu; int err = 0; // メニューをロード if (!err) if (!cMenu.LoadMenu(ID…
ON_NOTIFY(LVN_ITEMCHANGED, ..., ...)で登録されている場合 NMHDR nmhdr; nmhdr.code = LVN_ITEMCHANGED; nmhdr.idFrom = controlId; nmhdr.hwndFrom = controlWindowHandle; SendMessage( targetWindowHandle, WM_NOTIFY, controlId, &nmhdr );ネタ元 http…
SetItemState(nItem, // フォーカス&選択状態にしたいアイテムのインデックス LVIS_FOCUSED | LVIS_SELECTED, // 状態 LVIS_FOCUSED | LVIS_SELECTED); // マスクネタ元 http://rarara.cafe.coocan.jp/cgi-bin/lng/vc/vclng.cgi?print+200209/02090112.txt
問答無用なら InvalidateRect(0,0,false); //画面全体に再描画を要求ウインドウハンドルしていすれば、そのアイテムだけ再描画するネタ元 http://okwave.jp/qa/q112210.html
modeCreateだけだと中身クリアされるよ CFile::modeCreate | CFile::modeNoTruncateネタ元 http://www.g-ishihara.com/mfc_fi_01.htm
COleDateTime と COleDateTimeSpan を使います。 #include <afxdtctl.h> // MFC の Internet Explorer 4 コモン コントロール サポート int yy1,mm1,dd1; int yy2,mm2,dd2; int nNissuu; COleDateTime tsKjn(yy1,mm1,dd1,0,0,0); // 基準日 // COleDateTime tsKjn = COleDateTime::Ge</afxdtctl.h>…
MSDNには「ファイルのサイズを返します。」としか書いてないが、実は今読める分のサイズが返ってくるだけで、必ずしもファイルサイズを表してるわけではない。なので返ってくる値が0になるまで繰り返し読み込む必要がある CInternetFile *p_if_obj; p_if_obj…
宣言するだけ CWaitCursor wc;関数やスコープ抜けるところで元に戻る 簡単。ネタ元 http://park1.wakwak.com/~ima/visualcpp_tips0006.html
PostMessage (WM_COMMAND,ID_MENU_ITEM01);って感じ
fopen()で開いて CStdioFile にポインタ渡して読み込む。 直CStdioFileで読むとShift-jisになっちゃう。 CString sPath; FILE *fp; errno_t ferr; ferr = _tfopen_s(&fp,_T("C:\\text.txt"), _T("r, ccs=UTF-8")); if( 0 == ferr ){ CStdioFile sFile(fp); s…