2012년 11월 10일 토요일
Static Window 생성하고 따로 CALLBACK WNDPROC 돌리기
static-window-생성하고-따로-CALLBACK-WNDPROC-돌리기-1 에서 갖어 왔습니다.
나중에 델파이로 구현 해보려고 잡아 두었습니다.
Static 윈도우를 자식창(WS_CHILD)으로 만들고 그 안에 브라우저를 박아넣는건데,
이제껏 통신방식을 파일, 클립보드, 파이프 등을 이용해서 했지만 썩 만족스럽지 못했다.
메시지를 보내는 게 제일 좋다고 생각하고 삽질하다 성공했다.
// 주고 받을 메시지 정의
#define WM_PROXY WM_USER+123
// 전역으로 쓸 프로시져
WNDPROC IEProcdure;
Callback 함수 선언
LRESULT CALLBACK IEProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam) {
switch(iMsg) {
case WM_PROXY:
// 그냥 메시지가 오면 wParam 에 따라 메세지박스를 띄워준다...
if (wParam==0) MessageBox(hWnd, "0", "MyProxy", MB_OK);
else MessageBox(hWnd, "0 아니다", "MyProxy", MB_OK);
break;
}
return CallWindowProc(IEProcedure, hWnd, iMsg, wParam, lParam);
}
static window 생성
HWND g_hChild; // 생성할 정적 윈도우 핸들
// 윈도우 생성
g_hChild=CreateWindow("static", // 윈도우 클래스 = 정적(=static)
"Proxy", // 윈도우 캡션
WS_POPUP | WS_VISIBLE | WS_CHILD, // 윈도우 성격(-_-);
0, 0, // X, Y 위치
450, 600, // W, H 크기
hWnd, // 부모윈도우 핸들 (hWnd 라고 가정)
(HMENU)0, // 메뉴 (없다)
(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE), // 인스턴스 (type cast 에서 warning 뜸. 하지만 기능에는 지장없으므로 쫄지마셈)
(LPVOID)NULL);
// WndProc 과 연결
IEProcedure=(WNDPROC)SetWindowLong(g_hchild, GWL_WNDPROC, (LONG)IEProc);
끝이다..-_-;
졸라 간단한 거지만 개념이 안잡혀 있을 당시에는 가능한지도 몰랐었다...
피드 구독하기:
댓글 (Atom)
델파이 12.1이냐 11.3이냐?
델파이가 12.1이 나왔습니다. 혹시 11.3버전의 커뮤니티버전이 필요하시는분이 있을 수 있을 것 같아 https://altd.embarcadero.com/.../RADStudio_11_3_esd_28... 와 이것 찾느랴 엄청고생함.
-
윈도우10에 있는 음성 녹음기는 간단하게 녹음 할 때 간편하고 좋다. 곰 녹음기를 사용하면 오늘기준으로 CPU 점유율이 35% 이상 올라가 맥의 팬이 돌아간다. 윈10의 음성녹음기는 좋은 데 저장 폴더가 디폴트로 되어 있어 사용하기 불편하다. ...
-
클라이언트가 HTTP프로토콜을 이용해서 서버에 무언가를 전달할 때 Get 이나 Post가 사용됩니다. GET은 주소줄에 값이 ?뒤에 쌍으로 이어붙고 여러개일 경우에는 & 으로 반복하고, POST는 숨겨져서(body안에) 보내집니다. GET...
-
일단은 Python 사이트에가서 dmg 파일을 다운받아 설치합니다. m1 프로세서일경우에는 아래에 있는 파일이겠죠. 터미널을 열어 파이썬의 위치를 확인합니다. 파이썬3의 위치로 이동합니다. [cd /usr/local/bin] 파인더를 엽니다. [...
댓글 없음:
댓글 쓰기