본문 바로가기
반응형

C & C++/MFC 컨트롤199

타이틀바없이 다이얼로그 이동 타이틀바가 없을경우 (ex : 다이얼로그 속성창에서 TitleBar 를 false한다거나) 혹은 다른 부분을 드래그해도 다이얼로그를 이동하게 만들자!! 1. WM_LBUTTON 메시지핸들러의 처리 void CXXXDlg::OnLButtonDown(UINT nFlags, CPoint point) { PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y)); CDialog::OnLButtonDown(nFlags, point); } ->WM_NCLBUTTONDOWN은 wParam으로 주어진 곳의 Non-Client영역을 클릭했을때 클라이언트 영역을 클릭한 듯한 효과를 내며, wParam이 HTCAPTION 이므로 타이틀바를 클릭한 듯한 효과를 낸다. 2011. 10. 31.
팝업메뉴 만들기 특정 버튼을 마우스로 클릭했을 때 CMenu 클래스를 이용하여 간단한 팝업 메뉴를 만들어 방법에 대해서 알아보겠습니다. ( CMenu 클래스를 이용하여 메뉴를 추가하는 방법에는 2가지 방법을 제공하고 있으며 각각의 방법에 대해서 설명하도록 하겠습니다. ) 1. AppenMenu 함수를 이용하여 메뉴 추가하는 방법 CMenu menu; // 팝업 메뉴를 생성한다. menu.CreatePopupMenu(); CString str; for(int i = 0; i < 4; i++){ str.Format("%d번 메뉴", i+1); // 팝업 메뉴에 메뉴를 추가한다. // 명령아이디는 20000, 20001,... 순으로 자동 배열함 menu.AppendMenu(MF_STRING, 20000 + i, (LPCTS.. 2011. 10. 31.
트레이 아이콘 만들기 void CH7TrayDlg::RegistTrayIcon() { NOTIFYICONDATA nid; nid.cbSize = sizeof(nid); // 구조체의 크기 nid.hWnd = m_hWnd; // 메인 윈도우 핸들 nid.uID = IDR_MAINFRAME; // 아이콘 리소스 ID nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP; // 플래그 설정 nid.uCallbackMessage = WM_TRAYICON_MSG; // 콜백메시지 설정 nid.hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); // 아이콘 로드 lstrcpy(nid.szTip, "Long live the Queen"); Shell_NotifyIcon(NIM_A.. 2011. 10. 26.
날짜 구하기 1. 현재시간 구할때 CTime t = CTime::GetCurrentTime(); 2. 그 시간을 정수로 사용할때 t.GetYear(), t.GetMonth(), t.GetDay(), t.GetHour(), t.GetMinute(), t.GetSecond(), t.GetDayOfWeek() 3. 정수로 CTime을 만들때 CTime from(2007, 5, 29, 0, 0, 0); CTime to(2007, 5, 29, 23,59,59); 4. 날짜에서 몇일을 뺄때 CTime pre; CTimeSpan ts(10, 0, 0, 0 ); // 10일(일,시,분,초) pre = from - ts; 5. 날짜에서 날짜를 빼고, 시간차가 1시간 초과이면... CTimeSpan diff = CTime::GetCu.. 2011. 10. 26.
리스트 컨트롤 색상 다루기 [MFC 컨트롤] 리스트 컨트롤 색상 다루기 간단하지만 복잡하기도한 리스트 컨트롤 색상 다루기입니다. 칼럼과 행 별로 색상을 컨트롤할 수 있는데요, 일단 코드를 보시면서 말씀드릴게요, 밑의 코드는 제가 프로젝트하던 코드의 일부분입니다 :) 헤더 파일에 afx_msg void OnCustomdrawList(NMHDR* pNMHDR, LRESULT* pResult); 이렇게 추가해 주시구요, 메시지맵을 등록해야 겠죠, BEGIN_MESSAGE_MAP 밑에 이렇게 입력해줍니다. ON_NOTIFY(NM_CUSTOMDRAW, IDC_RESULT/*컨트롤 리소스 ID*/, OnCustomdrawList) 그리고 사용자 함수를 추가해서 코딩해 줍니다. void CNetManagerView::OnCustomdrawTc.. 2011. 10. 26.
Static Control 에서의 마우스 이벤트 처리 BOOL CTestDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class if (pMsg->message == WM_LBUTTONDOWN) { if (pMsg->hwnd == GetDlgItem(IDC_STATIC_TEXT)->GetSafeHwnd()) AfxMessageBox("Left Button Down"); } else if (pMsg->message == WM_RBUTTONDOWN) { if (pMsg->hwnd == GetDlgItem(IDC_STATIC_TEXT)->GetSafeHwnd()) AfxMessageBox("Right Button Down"); } r.. 2011. 10. 25.
반응형