MFC
// 実行ファイルのパスを取得 CString GetModulePath() { // 実行ファイルのパス CString modulePath = _T(""); // ドライブ名、ディレクトリ名、ファイル名、拡張子 wchar_t path[_MAX_PATH], drive[_MAX_PATH], dir[_MAX_PATH], fname[_MAX_PATH], ext[_MA…
#include "atlpath.h" BOOL GetFileList(CString path,CStringArray* outArray) { // ファイル検索を開始します。 CFileFind fileFind; BOOL bResult = fileFind.FindFile(path); // ファイル検索ができない場合、終了します。 if (!bResult) return FALSE; …
#include <windows.h> #include <tchar.h> #import <shdocvw.dll> #import <mshtml.tlb> int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { HRESULT hr = ::CoInitialize(NULL); //COMを使うときのお約束 if (FAILED(hr)) { return -1; } NewIE(); //新</mshtml.tlb></shdocvw.dll></tchar.h></windows.h>…
WebView2が使える。これでIEとおさらばできるかと思えば、ChroniumベースのEdgeがインストールされてる環境が前提。 お客さん向けに作るならChroniumベースのEdgeが使える環境/使えない環境を判断してコントロールを使う必要がありそうだ。ネタ元にはサンプ…
CAtlString strRows; CAtlString row; int curPos = 0; // 分割対象の文字列 // 最後に改行コードがあってもなくても構わない strRows = _T("row1\r\nrow2\r\nrow3\r\n"); //strRows = _T("row1\r\nrow2\r\nrow3"); // 最初の改行までの文字列を取り出す row…
COleDateTime nowdatetime = COleDateTime::GetCurrentTime(); COleDateTime predatetime(2020,4, 14,0,0,0); COleDateTimeSpan span(nowdatetime - predatetime); // 3日以内チェック if (span.GetTotalDays() <= 3) { ... } ネタ元 https://okwave.jp/qa/q…
int nLine = m_edt.GetFirstVisibleLine(); m_edt.SetWindowText(str); m_edt.LineScroll(nLine); ネタ元 https://rarara.org/community/programming/CEdit%E3%81%A7%E3%82%B9%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%AB%E4%BD%8D%E7%BD%AE%E3%81%AE%E4%BF%9D%E6%…
GetWindowRect()では絶対座標が取れるので そのままMoveWindow()するとどっか飛んでっちゃう。ScreenToClient()を使ってクライアント座標に変換しましょう。 POINT pt; RECT re; GetWindowRect(button_hWnd,&re); //ボタンの画面上の座標を取得 pt.x=re.left…
ヘッダで以下を定義 #ifdef OutputDebugString #undef OutputDebugString #endif #ifdef UNICODE #define OutputDebugString OutputDebugStringFW #define OutputDebugStringV OutputDebugStringFVW #else #define OutputDebugString OutputDebugStringFA #d…
チャレンジ中BK4504 エラーがでるので以下をみて対策。これでいいのかな? "BSCMAKEエラーBK1500:内部エラー"を取り除く方法コンパイルエラー https://kotaeta.com/53804360 検索すると「Windows Community Toolkit 」をNuGetで導入・・・なんて解説がある…
UTC時間取得して+9時間する COleDateTime dt; SYSTEMTIME stUTC{}; GetSystemTime(&stUTC); dt = stUTC; COleDateTimeSpan tsNis; tsNis.SetDateTimeSpan(0, 9, 0, 0); // +9 (日本時間に矯正) dt += tsNis;
COleDateTime dt1( yyyy, mm, dd ); COleDateTime dt2( yyyy, mm, dd ); COleDateTimeSpan span( dt1 - dt2 ); printf( "%d 日間です", span.GetTotalDays() ); ネタ元 https://oshiete.goo.ne.jp/qa/649520.html
ShowWindow(SW_SHOWMAXIMIZED ) ネタ元 https://docs.microsoft.com/ja-jp/previous-versions/visualstudio/visual-studio-2010/72szh9c7(v=vs.100)
OnSize()イベントで引数がOnSize(UINT nType, int cx, int cy) となるがnTypeがSIZE_MAXIMIZEDなら最大化されたと判定できる。 SIZE_MINIMIZEDなら最小化。 ネタ元 C#だけど https://dobon.net/vb/dotnet/form/minimized.html
long attr = GetFileAttributes(pFilename); if(attr != -1){ // ファイルがないと-1 if (FILE_ATTRIBUTE_READONLY == (attr & FILE_ATTRIBUTE_READONLY)) { CString mess; mess.Format("ファイルの書き込みに失敗しました。読み込み専用になっている可能性…
BOOL CHogeChildDialog::PreTranslateMessage(MSG* pMsg) { if (pMsg->message == WM_KEYDOWN) { switch (pMsg->wParam) { case VK_RETURN: return FALSE; // 親にゆだねる case VK_ESCAPE: return FALSE; // 親にゆだねる default: break; } } return CDial…
PreTranslateMessage()追加して、以下記述 BOOL CXXXDialog::PreTranslateMessage(MSG* pMsg) { if( WM_KEYDOWN == pMsg->message ) { switch( pMsg->wParam ) { case VK_RETURN: return FALSE; case VK_ESCAPE: return FALSE; default: break; } } return C…
多分203うん年問題含む CTime cTime = CTime::GetCurrentTime(); // 現在時刻 CString str = cTime.Format("%Y/%m/%d %H:%M:%S"); // "YYYY/mm/dd HH:MM:SS"形式の時刻文字列を取得 ネタ元 http://www.mfc-programming.com/2010/ctime/mfc30.html
CArray の GetData メソッドで中身がまるまるもらえて、しかも中身書き換えてOKなのです。 struct StructHoge { int number; }; ... CArray <StructHoge, StructHoge> arrayHoge; ... // ソート関数 int compareHoge(void* context, const void* a1, const void* a2) { StructHoge* p</structhoge,>…
CStringのコンストラクタには char*(ANSI文字列) / wchar_T*(Unicode文字列)どちらも受け入れるようにコンストラクターが定義されています。なので CStringA strA( "123ほげ" ); CString str( _T("ファイル") ); std::string strstd("hoge"); CString st…
TIME_ZONE_INFORMATION TzInfo; // タイムゾーン情報を取得 GetTimeZoneInformation( &TzInfo ); TzInfo.Bias に 分単位でずれ時間入ってる 日本時間だと -540 ネタ元 http://kwikwi.cocolog-nifty.com/blog/2006/01/bcb_utc_df21.html
コンボボックスのプロパティのスタイルタブのタイプをドロップダウンリストにする ネタ元 http://rarara.cafe.coocan.jp/cgi-bin/lng/vc/vclng.cgi?print+200108/01080034.txt
CComboBox::SetCurSel() ネタ元 https://msdn.microsoft.com/ja-jp/library/at7s2662.aspx
// CListCtrl m_ListCtrl int iSelected = m_ListCtrl.GetNextItem( -1, LVNI_SELECTED ); if( iSelected < 0 ){ // 選択されていない } ネタ元 https://mfcprogramming.wordpress.com/2010/11/01/clistctrl-%E9%81%B8%E6%8A%9E%E3%81%95%E3%82%8C%E3%81%A6%…
m_ListCtrl.SetItemState(0,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED); ネタ元 http://www.mfc-programming.com/2014/clistctrl/mfc585.html
うっかり。 CString FileName="ファイル名"; char buff[10]; UpdateData(TRUE); CFile fin.Open(FileName,CFile::modeRead | CFile::typeBinary); fin.Read(buff,10); m_Edit=buff; UpdateData(FALSE); ネタ元 http://rarara.cafe.coocan.jp/cgi-bin/lng/vc/…
std::string data; wchar_t str2[512]; char str3[512]; ... picojson::object&obj = (*i).get<picojson::object>(); data = obj["text"].get<std::string>(); //UTF-8からShift-JISに変換(str3に格納) MultiByteToWideChar(CP_UTF8, 0, data.c_str(), strlen(data.c_str()) + 1, str2, MAX_</std::string></picojson::object>…
CompareStringという関数がある。 CString input_string = "..."; // アルファベット順にソートして格納 POSITION tmp_pos = output_cstringlist.GetHeadPosition(); while( tmp_pos ){ POSITION bk_tmp_pos = tmp_pos; CString tmp_cstring = output_cstrin…
OFN_ALLOWMULTISELECTを設定すると複数のファイルが選択できるようになります。 しかし、これだけではたくさんファイルを選択すると不具合が発生します。 これはファイル名を受け取るバッファがデフォルトのままでは少ないため記憶できる限界を超えてしまう…
/*-------------------------------------------------------------------------------/ 関数名:void FindAllFile(LPCTSTR pstrName, CListBox &listbox, BOOL bFolder) 引 数:pstrName 検索するファイルの名前が入っている文字列へのポインタ。 listbox …