본문 바로가기
반응형

C & C++/MFC 컨트롤199

다이얼로그 안으로 밖으로 p, td, ul, ol, li { font-size:12px; line-height:140%; margin-top:0; margin-bottom:0; } body { font-size:12px; } 질답란에 있길래 한번 만들어 보았습니다. 다이얼로그를 WS_POPUP으로 사용하다가 WS_CHILD로 ~ 스타일 변경은 m_pDlg->ModifyStyle(WS_CHILD, WS_POPUP|WS_BORDER|WS_CAPTION|DS_MODALFRAME); 스타일 변경하기 위해 잠시 SW_HIDE ~~SW_SHOW, 부모윈도우 잡아주기 위해 m_pDlg->SetParent(this); if(!m_pDlg){ m_pDlg = new CTestDlg; m_pDlg->Create(CTestDlg::IDD, this.. 2011. 11. 21.
툴바의 위치를 레지스트리에 저장하자 레지스트리에 툴바의 위치를 저장하자 [ 레지스트리에 툴바의 위치를 저장하자 ] 윈도우 프로그램을 쓰면서, 자주 사용하는 항목은 툴바라는 것으로 묶어 놓게 됩니다. 한두 개정도의 툴바가 있을 경우는 상관없지만, 아주 많은 툴바가 존재할 경우나, 자신에게는 필요없는 툴바인 경우는 제거하거나, 위치를 바꿔서 사용하신 경험이 있으실껍니다. 그런데, 그 프로그램을 종료하고, 또 사용하시려고 하면, 정리했거나, 제거했던 툴바가 다시 도로 생기게되죠 ? 그러면, 또 제거하고, 위치옮겨놓고... 이러면 짜증~ 나겠져.. 이럴 경우에 사용하는 테크닉입니다. 바로 레지스트리를 이용하여, 데이터를 저장시키면 됩니다. 일단 한번 보시죠 ^_^ 먼저 툴바의 생성과정 및 이용방법에 대해 알아보겠습니다. 툴바의 관리는 CMainF.. 2011. 11. 17.
프로그램 시작시 About박스를 표시하려면 등... + 시스템 메뉴를 없애려면 타이틀바에 있는 시스템 메뉴를 없애려면 CFrameWnd 클래스에서 상속받은 CMainFrame에 있는 PreCreateWindow()에 다음과 같이 한 줄을 추가하면 간단히 제거할 수 있습니다. cs.style &= ~WS_SYSMENU; 보통 윈도우 스타일인 WS_OVERLAPPEDWINDOW에는 시스템 메뉴와 여러 윈도우 스타일이 정의돼 있기 때문에 기본값에서 시스템 메뉴를 없애면 되는 거죠. + 메임프레임이 차지하는 행의 수를 찾으려면 뺄셈과 나눗셈만으로 이 문제를 간단히 해결할 수 있습니다. 먼저 메임프레임과 클라이언트 영역의 높이를 계산합니다. 그 다음 프레임의 높이에서 클라이언트 영역의 높이, 프레임의 테두리, 캡션을 뺀 후 마지막으로 메뉴바의 높이로 나누면 됩니다.. 2011. 11. 8.
[ToolBar] 툴바에 추가된 버튼을 DROPDWON 속성지정 후 메뉴붙이는 툴바에 추가된 버튼을 DROPDWON 속성지정 후 메뉴를 붙이는 방법에 대해서 알아보겠습니다. ResourceView 탭의 Toolbar(IDR_MAINFRAME) 아이템을 선택 오픈한 후 하나의 버튼을 추가하고. 그 버튼의 ID를 ID_DROPDOWN_TEST 으로 지정한다. // MainFrm.cpp 파일에 아래 다섯개의 define 문을 추가한다.(드롭다운 툴바메뉴의 아이템 인덱스) #define ID_MENU0_1 1 #define ID_MENU1_1 2 #define ID_MENU1_2 3 #define ID_MENU1_3 4 #define ID_MENU2_1 5 #define ID_MENU2_2 6 // OnCreate 함수에 툴바를 만들고난 직후에 아래의 코드를 추가한다. int CMainF.. 2011. 11. 8.
[Button] 버튼에 색상넣기 MFC 에서 BUTTON에 색상을 넣어 보자. 1. 먼저 BUTTON_기본기능 을 이용하여 기본적인 버튼을 추가하자. 2. BUTTON 을 선택후 우측마우스 클릭으로 Property 를 선택하여 속성상자를 연다. [Styles]탭에서 Owner draw 를 체크한후 컴파일&실행 해보자. 아래 그림처럼 버튼이 보이지 않을 것이다. ( Owner draw 항목을 체크하여서 사용자가 직접 색상을 넣어줘야 하는데 아직 코딩하지 않았기 때문이다.) 3. 색상을 넣어주는 메소드는 WM_DRAWITEM 이다. ClassWizard ( 단축키 : Ctrl + W) 를 실행하여 Object IDs 에서 CWATButtonColorDlg 을 선택하고, Messages 에서 WM_DRAWITEM 을 선택하여 4. [Add .. 2011. 11. 3.
Visual C++,MFC 에서 로그인창 띄우고 메인화면 띄우기 ex)로그인창을 띄워서 OK를 누르면 메인창이 뜨고, CANCEL를 누르면 프로그램이 닫히게할려면 -> 1. 일단 로그인 다이얼로그는 만들었다고 치고 이름을 CLoginDlg라고 했다고 가정하겠습니다. 내부적으로 MainFrame까지 만들어 지고 아직 보여주지는 않는 상태에서 로그인창을 보여 주고 싶다면 , CWinApp에서 상속받은 CXXXApp 클래스의 BOOL CXXXApp::InitInstance() 함수에서 m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); 같은 부분이 있을껍니다... 이것을 m_pMainWnd->ShowWindow(SW_HIDE); 로 해놓고 CLoginDlg dlg; if (dlg.DoModal() != IDOK ) .. 2011. 11. 3.
반응형