본문 바로가기

전체 글166

쉼표 연산자 - , 연산자는 양쪽에 있는 식을 왼쪽에서 오른쪽 순서로 실행하고 오른쪽에 있는 식의 값을 가진다. - , 연산자의 가장 일반적인 사용 예는 for 루프의 증분 식이다. 쉼표는 함수 인수 목록과 같은 일부 컨텍스트에서 구분 기호로 사용될 수 있다. 쉼표를 구분 기호로 사용하는 경우와 연산자로 사용하는 경우는 완전히 다르기 때문에 둘을 혼동하지 않도록 주의해야 한다. - , 연산자의 우선 순위는 가장 마지막이다. // cpp_comma_operator.cpp #include int main () { int i = 10, b = 20, c= 30; i = b, c; printf("%i\n", i); // 20 출력 i = (b, c); printf("%i\n", i); // 30 출력 } https://ms.. 2017. 5. 24.
항상 위에 (TopMost) ::SetWindowPos(this->m_hWnd, HWND_TOPMOST, nX, nY, nWidth, nHeight, NULL); 함수를 사용하면된다 풀려면 ::SetWindowPos(this->m_hWnd, HWND_NOTOPMOST, nX, nY, nWidth, nHeight, NULL); 2017. 5. 23.
다이알 로그 활성화 확인 void Dialog::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized) { __super::OnActivate(nState, pWndOther, bMinimized); // TODO: 여기에 메시지 처리기 코드를 추가합니다. switch (nState) { case WA_INACTIVE:// 비 활성 했을 때 break; case WA_ACTIVE:// 활성 했을 때(마우스 클릭 제외) break; case WA_CLICKACTIVE:// 마우스 클릭으로 활성 했을 때 break; } cf. api에서는 LOWORD(wParam)로 알아냄 cf. focus는 다이알로그 안 컨트롤에 대한 것으로 의미하므로 activate와 다르다. 2017. 5. 22.
간단한 Popup Menu 만들기 CMenu cMenu; // 팝업 메뉴 생성cMenu = CreatePopupMenu(); // 팝업 메뉴 항목 추가cMenu.AppendMenu(MF_STRING, 메시지, L"팝업 항목 내용"); // 팝업 메뉴 출력cMenu.TrackPopupMenu(속성, x좌표, y좌표, pWnd );기본적으로 메시지 호출하여 콜백함속성에 TPM_RETURNCMD|TPM_NONOTIFY를 이용하면 리턴 값으로 메시지 값을 받아 사용할 수 있다. (선택을 안할 경우 0값 리턴) 보통 좌표는 GetCursorPos()로 마우스 좌표 받아옴 pWnd 는 AfxGetApp()->GetMainWnd(); 에서 받아오거나 대화상자에서 호출시 this // 팝업 메뉴 제거cMenu.DestroyMenu(); 2017. 5. 10.