GUI/컨트롤
-
캐럿GUI/컨트롤 2009. 7. 30. 22:28
CreateCaret() DestroyCaret() ShowCaret() SetCaretPos() #include #pragma comment(lib, "imm32") int GetCharWidth(HDC hdc, TCHAR *ch, int len) { SIZE sz; GetTextExtentPoint32(hdc, ch, len, &sz); return sz.cx; } static BOOL bComp; static TCHAR *buf; static int off; static int FontHeight; void SetCaret(HWND hWnd) { SIZE sz; HDC hdc; int toff; int caretwidth; hdc=GetDC(hWnd); if (bComp) { toff=off-2; ..
-
IME - Win32GUI/컨트롤 2009. 7. 30. 02:09
시스템은 IME 윈도우의 변화나 조립 문자열의 변화 등 IME의 모든 상태 변화에 대해 WM_IME_로 시작되는 IME 메시지를 포커스를 가진 윈도우에게 보낸다. WM_IME_SETCONTEXT 응용 프로그램이 활성/비활성화 WM_IME_NOTIFY IMN_OPENSTATUSWINDOW 상태 윈도우를 열었다 // ?? 한영 변환 WM_IME_NOTIFY IMN_SETOPENSTATUS IMN_SETCONVERSIONMODE 조립 윈도우 WM_IME_STARTCOMPOSITION 디폴트 IME 윈도우는 이 메시지를 받았을 때 조립 윈도우를 보여준다. 이 메시지를 DefWindowProc으로 보내지 않으면 조립 윈도우는 나타나지 않는다. WM_IME_ENDCOMPOSITION WM_IME_COMPOSITIO..
-
오너 드로우GUI/컨트롤 2009. 7. 6. 16:38
리스트 박스 LBS_OWNERDRAWFIXED|LBS_OWNERDRAWVARIABLE c.f. on WM_CTLCOLORLISTBOX 메뉴 버튼 c.f. on WM_CTLCOLORBTN 콤보 박스 리스트 뷰 WM_PAINT를 오버라이딩? 부모 윈도우가 대신 그릴 수 있게 해준다. // 문자열이 아닌 {고정 크기 스타일|가변 크기 스타일} on WM_MEASUREITEM .itemHeight on WM_DRAWITEM .CtlType .CtlID .itemState ODS_SELECTED .hDC .rcItem .itemData
-
MDI - Win32GUI/컨트롤 2009. 6. 30. 02:14
복수 개의 문서 타입(차일드)을 지원하려면 메뉴도 그 수만큼 있어야 한다. DefMDIChildProc() WM_MDIACTIVATE MDICLIENT WS_CLIPCHILDREN WM_MDISETMENU WM_MDICREATE MDICREATESTRUCT WM_MDITILE MDITILE_HORIZONTAL WM_MDICASCADE WM_MDIICONARRANGE CreateMDIWindow() CreateWindowEx() WS_EX_MDICHILD DefFrameProc() TranslateMDISysAccel() IDR_MENU1 MENU DISCARDABLE BEGIN POPUP "File" BEGIN MENUITEM "New Draw", ID_FILE_NEWDRAW MENUITEM "New E..
-
키보드/마우스 버튼 - Win32GUI/컨트롤 2009. 6. 30. 02:04
액셀러레이터 LoadAccelerators() TranslateAccelerator() IDR_ACCELERATOR1 ACCELERATORS DISCARDABLE BEGIN "A", ID_FILE_MENU1, VIRTKEY, CONTROL, NOINVERT ... END int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance ,LPSTR lpszCmdParam,int nCmdShow) { ... hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT, NULL,(HMENU)NULL,hInstanc..
-
탭 - Win32GUI/컨트롤 2009. 6. 28. 18:58
WC_TABCONTROL TabCtrl_InsertItem() TCIF_TEXT TabCtrl_GetCurSel() WM_NOTIFY TCN_SELCHANGE #include #pragma comment(lib, "comctl32") int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // TODO: Place code here. MSG msg; HACCEL hAccelTable; // Initialize global strings LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); LoadString(hInstance..
-
MDI - VBGUI/컨트롤 2009. 6. 28. 17:50
Public Cnt As Integer Begin VB.Form Form1 Caption = "Form1" ... MDIChild = -1 'True ... End ... Private Sub Form_Load() Cnt = Cnt + 1 Me.Caption = "새문서" & Cnt End Sub Begin VB.MDIForm MDIForm1 BackColor = &H8000000C& ... Begin VB.Menu mnuFile Caption = "파일(&F)" Begin VB.Menu mnuNewFile Caption = "새로 만들기(&N)" End Begin VB.Menu mnuLine Caption = "-" End Begin VB.Menu mnuExit Caption = "종료(&X)" End..
-
다이얼로그 레이아웃 매니저 - MFCGUI/컨트롤 2009. 6. 26. 20:46
CPane HORIZONTAL VERTICAL .addItem() GREEDY ABSOLUTE_VERT .addPane() ABSOLUTE_VERT CFormViewMgr DECLARE_LAYOUT() .UpdateLayout() #include "DialogMgr.h" class CLayoutManagerView : public CFormViewMgr { protected: // create from serialization only CLayoutManagerView(); DECLARE_DYNCREATE(CLayoutManagerView) // { DECLARE_LAYOUT(); // } public: //{{AFX_DATA(CLayoutManagerView) enum{ IDD = IDD_LAYOUTM..