41#ifndef INCLUDE_GUARD_URANIA_WINDOW_BASE_H
42#define INCLUDE_GUARD_URANIA_WINDOW_BASE_H
44#include <eunomia/noncopyable.h>
45#include <eunomia/rect.h>
194 ::SendMessage(
hw_, WM_SETTEXT, 0, (ULONG_PTR)(ttl.c_str()));
201 ::PostMessage(
hw_, WM_CLOSE, 0, 0);
208 ::ShowWindow(
hw_, SW_SHOW);
215 ::ShowWindow(
hw_, SW_HIDE);
222 ::ShowWindow(
hw_, SW_MAXIMIZE);
229 ::ShowWindow(
hw_, SW_MINIMIZE);
236 ::ShowWindow(
hw_, SW_RESTORE);
249 ::SetWindowPos(
hw_, NULL, x, y, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
263 ::PostMessage(
hw_, msg, wp, lp);
276 ::GetWindowRect(
hw_, &rc);
277 return rc.right - rc.left;
288 ::GetWindowRect(
hw_, &rc);
289 return rc.bottom - rc.top;
303 ::GetWindowRect(
hw_, &rc);
304 w = rc.right - rc.left;
305 h = rc.bottom - rc.top;
332 HWND w = GetDlgItem(
hw_,
id);
333 ::EnableWindow(w, TRUE);
339 HWND w = GetDlgItem(
hw_,
id);
340 ::EnableWindow(w, FALSE);
352 L
"EDIT", L
"", WS_CHILD | WS_VISIBLE | WS_BORDER,
353 re.x, re.y, re.width, re.height,
354 hw_,
reinterpret_cast<HMENU
>(
id),
getHI_(),
nullptr);
362 CreateWindow(L
"EDIT", L
"",
363 WS_CHILD | WS_VISIBLE | WS_BORDER | ES_MULTILINE | ES_NOHIDESEL |
364 ES_WANTRETURN | ES_AUTOVSCROLL | WS_VSCROLL,
365 re.x, re.y, re.width, re.height,
366 hw_,
reinterpret_cast<HMENU
>(
id),
getHI_(),
nullptr);
376 WS_CHILD | WS_VISIBLE | WS_BORDER | LBS_DISABLENOSCROLL | WS_VSCROLL,
377 re.x, re.y, re.width, re.height,
378 hw_,
reinterpret_cast<HMENU
>(
id),
getHI_(),
nullptr);
388 WS_CHILD | WS_VISIBLE | WS_VSCROLL
389 | CBS_DISABLENOSCROLL | CBS_DROPDOWNLIST,
390 re.x, re.y, re.width, re.height,
391 hw_,
reinterpret_cast<HMENU
>(
id),
getHI_(),
nullptr);
399 int id,
const std::wstring& str,
const eunomia::AnotherRect& re)
402 L
"BUTTON", str.c_str(), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
403 re.x, re.y, re.width, re.height,
404 hw_,
reinterpret_cast<HMENU
>(
id),
getHI_(),
nullptr);
412 int id,
const std::wstring& str,
const eunomia::AnotherRect& re)
415 L
"STATIC", str.c_str(), WS_CHILD | WS_VISIBLE | SS_LEFT,
416 re.x, re.y, re.width, re.height,
417 hw_,
reinterpret_cast<HMENU
>(
id),
getHI_(),
nullptr);
425 int id,
const std::wstring& str,
const eunomia::AnotherRect& re)
428 L
"BUTTON", str.c_str(), WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX,
429 re.x, re.y, re.width, re.height,
430 hw_,
reinterpret_cast<HMENU
>(
id),
getHI_(),
nullptr);
447 HWND w = ::GetDlgItem(
hw_,
id);
448 ::SendMessage(w, WM_SETTEXT, 0, (LPARAM)(txt.c_str()));
455 HWND w = ::GetDlgItem(
hw_,
id);
456 ::SendMessage(w, WM_CLEAR, 0, 0);
463 HWND w = ::GetDlgItem(
hw_,
id);
464 ::SendMessage(w, WM_COPY, 0, 0);
471 HWND w = ::GetDlgItem(
hw_,
id);
472 ::SendMessage(w, WM_CUT, 0, 0);
479 HWND w = ::GetDlgItem(
hw_,
id);
480 ::SendMessage(w, WM_PASTE, 0, 0);
488 HWND w = ::GetDlgItem(
hw_,
id);
489 if (::SendMessage(w, EM_CANUNDO, 0, 0))
499 HWND w = ::GetDlgItem(
hw_,
id);
500 ::SendMessage(w, EM_UNDO, 0, 0);
514 HWND w = ::GetDlgItem(
hw_,
id);
515 return ::SendMessage(w, EM_GETLINECOUNT, 0, 0);
533 HWND w = ::GetDlgItem(
hw_,
id);
534 ::SendMessage(w, LB_ADDSTRING, 0, (LPARAM)(txt.c_str()));
543 HWND w = ::GetDlgItem(
hw_,
id);
544 ::SendMessage(w, LB_INSERTSTRING, no, (LPARAM)(txt.c_str()));
552 HWND w = ::GetDlgItem(
hw_,
id);
553 ::SendMessage(w, LB_DELETESTRING, no, 0);
560 HWND w = ::GetDlgItem(
hw_,
id);
561 return ::SendMessage(w, LB_GETCOUNT, 0, 0);
569 HWND w = ::GetDlgItem(
hw_,
id);
570 int r = ::SendMessage(w, LB_GETCURSEL, 0, 0);
582 HWND w = ::GetDlgItem(
hw_,
id);
583 ::SendMessage(w, LB_SETCURSEL, no, 0);
590 HWND w = ::GetDlgItem(
hw_,
id);
591 ::SendMessage(w, LB_RESETCONTENT, 0, 0);
608 void dirLB(
int id,
const std::wstring& path,
int flag);
625 HWND w = ::GetDlgItem(
hw_,
id);
626 ::SendMessage(w,CB_ADDSTRING, 0, (LPARAM)(txt.c_str()));
635 HWND w = ::GetDlgItem(
hw_,
id);
636 ::SendMessage(w,CB_INSERTSTRING,no,(LPARAM)(txt.c_str()));
644 HWND w = ::GetDlgItem(
hw_,
id);
645 ::SendMessage(w,CB_DELETESTRING,no,0);
652 HWND w = ::GetDlgItem(
hw_,
id);
653 return ::SendMessage(w,CB_GETCOUNT,0,0);
661 HWND w = ::GetDlgItem(
hw_,
id);
662 int r = ::SendMessage(w, CB_GETCURSEL, 0, 0);
674 HWND w = ::GetDlgItem(
hw_,
id);
675 ::SendMessage(w, CB_SETCURSEL, no, 0);
682 HWND w = ::GetDlgItem(
hw_,
id);
683 ::SendMessage(w, CB_RESETCONTENT, 0, 0);
700 void dirCB(
int id,
const std::wstring& path,
int flag);
711 return IsDlgButtonChecked(
hw_,
id);
822 void getRangeSB(
int id,
int& min,
int& max,
int& page);
829 void setRangeSB(
int id,
int min,
int max,
int page);
842 ::EnableScrollBar(
hw_, SB_HORZ, ESB_ENABLE_BOTH);
844 ::EnableScrollBar(
hw_, SB_VERT, ESB_ENABLE_BOTH);
846 HWND w = ::GetDlgItem(
hw_,
id);
847 ::EnableScrollBar(w, SB_CTL, ESB_ENABLE_BOTH);
859 ::EnableScrollBar(
hw_, SB_HORZ, ESB_DISABLE_BOTH);
861 ::EnableScrollBar(
hw_, SB_VERT, ESB_DISABLE_BOTH);
863 HWND w = ::GetDlgItem(
hw_,
id);
864 ::EnableScrollBar(w, SB_CTL, ESB_DISABLE_BOTH);
HWND管理用基底クラス
Definition wbase.h:55
void deleteItemCB(int id, int no)
コンボボックスの項目の削除
Definition wbase.h:642
void disableCtrl(int id)
コントロールの無效化
Definition wbase.h:337
void move(int x, int y)
ウィンドウの移動
Definition wbase.h:246
void createComboBox(int id, const eunomia::AnotherRect &re)
コンボボックス生成
Definition wbase.h:384
void setCurrentCB(int id, int no)
コンボボックスの選擇項目の設定
Definition wbase.h:672
void link_(HWND h)
HWNDの強固な連結
Definition wbase.h:73
void dirLB(int id, const std::wstring &path, int flag)
リストボックスへの指定ディレクトリの内容の反映
Definition ctrl.cpp:100
void destroy()
ウィンドウの破棄
Definition wbase.h:187
void deleteItemLB(int id, int no)
リストボックスの項目の削除
Definition wbase.h:550
void setRangeVSB(int min, int max, int page)
垂直スクロールバーの範圍の設定
Definition wbase.h:788
void clearLB(int id)
リストボックスの内容の消去
Definition wbase.h:588
int getPosVSB()
垂直スクロールバーの位置の取得
Definition wbase.h:764
int countLineEB(int id)
複數行エディットボックスの行數の取得
Definition wbase.h:512
WndBase() noexcept
Definition wbase.h:63
void attach_(HWND h)
HWNDの連結
Definition wbase.h:95
void insertItemCB(int id, int no, const std::wstring &txt)
コンボボックスへの項目の插入
Definition wbase.h:633
void undoEB(int id)
直前動作の取り消し
Definition wbase.h:497
void setPosSB(int id, int pos)
スクロールバーの位置の設定
Definition ctrl_sb.cpp:75
void addItemCB(int id, const std::wstring &txt)
コンボボックスへの項目の追加
Definition wbase.h:623
int getWidth()
ウィンドウ幅を取得
Definition wbase.h:271
bool getWidthAndHeight(int &w, int &h)
ウィンドウの幅と高さの取得
Definition wbase.h:298
void deleting_()
オブジェクト側からHWNDを破棄
Definition wbase.h:137
void maximize()
ウィンドウの最大化
Definition wbase.h:219
void insertItemLB(int id, int no, const std::wstring &txt)
リストボックスへの項目の插入
Definition wbase.h:541
void show()
ウィンドウの表示
Definition wbase.h:205
int getCurrentLB(int id)
選擇中のリストボックスの項目番號の取得
Definition wbase.h:567
HWND hw_
管理對象のHWND
Definition wbase.h:57
void setEBText(int id, const std::wstring &txt)
エディットボックスの内容の設定
Definition wbase.h:445
virtual void init_(HWND)=0
メッセージ處理系初期化
int countItemLB(int id)
リストボックスの項目數の取得
Definition wbase.h:558
void setPosHSB(int pos)
水平スクロールバーの位置の設定
Definition wbase.h:724
void cutEB(int id)
選擇文字列のクリップボードへのコピー及び削除
Definition wbase.h:469
void enableVSB()
垂直スクロールバーの有效化
Definition wbase.h:794
void dirCB(int id, const std::wstring &path, int flag)
コンボボックスへの指定ディレクトリの内容の反映
Definition ctrl.cpp:126
void clearCB(int id)
コンボボックスの内容の消去
Definition wbase.h:680
void clearEB(int id)
エディットボックスの内容の消去
Definition wbase.h:453
void postMessage(UINT msg, WPARAM wp, LPARAM lp)
メッセージ送出
Definition wbase.h:260
virtual void uninit_()=0
メッセージ處理系初期化解除
void disableHSB()
水平スクロールバーの無效化
Definition wbase.h:754
int getCurrentCB(int id)
コンボボックスの選擇中の項目の番號の取得
Definition wbase.h:659
void hide()
ウィンドウの隱蔽
Definition wbase.h:212
int countItemCB(int id)
コンボボックスの項目數の取得
Definition wbase.h:650
void createListBox(int id, const eunomia::AnotherRect &re)
リストボックス生成
Definition wbase.h:372
void normalize()
ウィンドウの復原
Definition wbase.h:233
static HWND getHWND(const urania::WndBase *wb)
HWNDの取得
Definition wbase.h:173
void createCheckBox(int id, const std::wstring &str, const eunomia::AnotherRect &re)
チェックボックス生成
Definition wbase.h:424
std::wstring getItemCB(int id, int no)
コンボボックスの項目の取得
Definition ctrl.cpp:112
int width()
ウィンドウ幅の取得
Definition wbase.h:280
std::wstring getLineTextEB(int id, int li)
複數行エディットボックスからの一行の取得
Definition ctrl.cpp:65
void close()
ウィンドウの閉止
Definition wbase.h:198
virtual ~WndBase()=default
std::wstring getTextEB(int id)
エディットボックスの内容の取得
Definition ctrl.cpp:45
void disableSB(int id)
スクロールバーの無效化
Definition wbase.h:853
void detach_()
HWNDの切り離し
Definition wbase.h:104
int height()
ウィンドウの高さの取得
Definition wbase.h:292
void getRangeHSB(int &min, int &max, int &page)
水平スクロールバーの範圍の取得
Definition wbase.h:733
void pasteEB(int id)
クリップボードからの文字列のペースト
Definition wbase.h:477
void kill_()
HWNDの切り離しと破棄
Definition wbase.h:84
void enableSB(int id)
スクロールバーの有效化
Definition wbase.h:836
int getHeight()
ウィンドウの高さを取得
Definition wbase.h:283
int getPosSB(int id)
スクロールバーの位置の取得
Definition ctrl_sb.cpp:41
void createLabel(int id, const std::wstring &str, const eunomia::AnotherRect &re)
ラベル生成
Definition wbase.h:411
void enableCtrl(int id)
コントロールの有效化
Definition wbase.h:330
void createMultiLineEditBox(int id, const eunomia::AnotherRect &re)
複數行エディットボックスの生成
Definition wbase.h:360
void minimize()
ウィンドウの最小化
Definition wbase.h:226
bool isChecked(int id)
チェックボックスなどのチェックの有無の取得
Definition wbase.h:709
bool canUndoEB(int id)
直前動作の取り消しの可否の確認
Definition wbase.h:486
static HINSTANCE getHI_()
派生クラスがHINSTANCEを取得するための"カプセル破り"
Definition wbase.h:161
std::wstring getItemLB(int id, int no)
リストボックスの項目の取得
Definition ctrl.cpp:86
void getRangeVSB(int &min, int &max, int &page)
垂直スクロールバーの範圍の取得
Definition wbase.h:779
void disableVSB()
垂直スクロールバーの無效化
Definition wbase.h:800
void setRangeSB(int id, int min, int max, int page)
スクロールバーの範圍の設定
Definition ctrl_sb.cpp:146
void getRangeSB(int id, int &min, int &max, int &page)
スクロールバーの範圍の取得
Definition ctrl_sb.cpp:109
void enableHSB()
水平スクロールバーの有效化
Definition wbase.h:748
void setRangeHSB(int min, int max, int page)
水平スクロールバーの範圍の設定
Definition wbase.h:742
virtual void destroyWindow_()=0
ウィンドウ破棄の實處理
int getPosHSB()
水平スクロールバーの位置の取得
Definition wbase.h:719
void setPosVSB(int pos)
垂直スクロールバーの位置の設定
Definition wbase.h:770
void setCurrentLB(int id, int no)
リストボックスの選擇項目の設定
Definition wbase.h:580
void resetTitle(const std::wstring &ttl)
ウィンドウタイトルの變更
Definition wbase.h:191
void destroyed_()
HWNDが破棄された時の後處理
Definition wbase.h:149
void addItemLB(int id, const std::wstring &txt)
リストボックスへの項目の追加
Definition wbase.h:531
void createPushButton(int id, const std::wstring &str, const eunomia::AnotherRect &re)
ボタン生成
Definition wbase.h:398
void copyEB(int id)
クリップボードへの選擇文字列のコピー
Definition wbase.h:461
void createEditBox(int id, const eunomia::AnotherRect &re)
エディットボックス生成
Definition wbase.h:349
@ ID_SBH
Definition decl.h:119
@ ID_SBV
Definition decl.h:118