본문 바로가기
반응형

C & C++444

[상태바] 실행시 CStatues Bar 의 Prompt 문자열 제어하기 다국어 지원 프로그램을 테스트 하다 필요해 찾아본 정보인다. 메뉴나 툴바의 Prompt String 을 지정하면 실행시 마우스로 가리킬때 상태바에 Prompt String 이 출력된다. 실행시에 이 메세지를 변경을 해야할 필요가 있어 그 방법을 찾아 보았다. 실생시에 Prompt String을 제어하기 위해서는 MainFrame 의 GetMessageString 함수를 재정의(Override)하면 된다. GetMessageString 은 다음과 같은 원형을 갖고 있다. (MSDN 발췌) virtual void GetMessageString( UINT nID, CString& rMessage ) const; Parameters nID Resource ID of the desired message. rMes.. 2011. 4. 7.
[Tip] 현재 키보드 상태를 확인 /////////////////////////////////////////////////////////////////////////////// Num Lock, Caps Lock, Scroll Lock 상태 알아내기 1 bool bScrollLock = (bool)( ::GetKeyState(VK_SCROLL) > 0 ); 2 bool bNumLock = (bool)( ::GetKeyState(VK_NUMLOCK) > 0 ); 3 bool bCapsLock = (bool)( ::GetKeyState(VK_CAPITAL) > 0 ); //////////////////////////////////////////////////////////////////////////////// 1 bool bLCtrl = .. 2011. 4. 7.
[Tip] 작업표시줄 숨기기 전체화면으로 처리할일이 생기는데 만약 작업표시줄을 없애야 한다면? 자동으로 숨기기 기능 코드이다. 바로 적용시키면 된다. void CMyPlannerDlg::hideWorkBar() { APPBARDATA stAppBarData; // 구조체 초기화 ZeroMemory( &stAppBarData, sizeof stAppBarData ); stAppBarData.cbSize = sizeof stAppBarData; // 작업 표시줄 핸들을 찾는다. stAppBarData.hWnd = (HWND)FindWindow( _T("Shell_TrayWnd"), NULL ); stAppBarData.lParam |= ABS_AUTOHIDE; // 쉘 메시지를 전달한다. SHAppBarMessage( ABM_SETST.. 2011. 4. 4.
[Tip] 작업표시줄에 응용프로그램 나타나지 않게 트레이 아이콘으로 사용하는 프로그램이 있으면, 작업 표시줄에 나타나면 공간만 소요하고 쓸모가 없게 된다. 이럴때 간단한 메시지하나만 발생 시키면 작업 표시줄에서 뺄 수 있다. BOOL CMyPlannerDlg::OnInitDialog() { ... SetIcon(m_hIcon, TRUE); // 큰 아이콘을 설정합니다. SetIcon(m_hIcon, FALSE); // 작은 아이콘을 설정합니다. ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW); ... return TRUE; // 포커스를 컨트롤에 설정하지 않으면 TRUE를 반환합니다. } BOOL CMyPlannerDlg::OnInitDialog() { ... SetIcon(m_hIcon, TRUE);// 큰 아이콘.. 2011. 4. 4.
[Tip] 인텔리젼스 구현 Edit박스같이 보이는 입력창에 글자를 입력하면 parsing을 해서 그 단어가 들어간 리스트를 보여준다, 그것을 구현할려면, ComboBox로는 부족한 감이 있다, 아이콘 같은 것을 넣을려면, ComboBox를 상속받아서 서브클래싱을 하면 되긴하다, 하지만 초보자 입장에서 서브클래싱과 클래스재정의는 압박으로 다가온다, 그래서 간단하게 EditBox와 다이얼로그를 이용한 인텔리센스 구현법을 알아보자, 일단 EditBox를 추가한다, 그리고 클래스 위자드에서 EN_UPDATE 메시지를 오버라이딩한다, view plaincopy to clipboardprint? void CVKStarterDlg::OnUpdateRunedit() { // Some code here ... OnIntellisense(); //.. 2011. 4. 4.
PostMessage 와 SendMessage 의 차이점 PostMessage 와 SendMessage 의 차이점 BOOL PostMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); LRESULT SendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); 두 함수의 인수는 완전히 동일합니다. 여기서 Post라는 말은 우리말로 "붙인다"라고 번역되며 "Send"라는 말은 "보낸다"라고 번역됩니다. PostMessage 함수는 Msg인수로 지정된 메시지를 hWnd 윈도우의 메시지 큐에 집어넣어 윈도우 프로시저에서 이메시지를 처리하도록합니다. 메시지를 큐에 넣기만 하고 바로 리턴하므로 메시지를 붙인 후 즉시 다른 작업을 할 수 있지만 큐에 대기하고 있는 다.. 2011. 4. 4.
반응형