여친용 프로그램 ㅋㅋ~

@codemaru · November 04, 2010 · 3 min read

             md 0

회사 개발자가 예전에 공부할 때 만들었던 프로그램이라고 하는데, 구경 하다가 너무 재밌어서 퍼왔습니다. “사랑해”, “loving you”같은 메시지를 화면에 막 뿌려주는 기능이 전부인 심플한 프로그램인데, 여친님께 바치면 대박 효과를 볼 수 있을 것으로 사료되는 프로그램입니다. 사랑하는 여친 컴퓨터에 살포시 시작 프로그램으로 등록해 주세요. ㅋㅋㅋ~ 실행 파일은 아래 경로에서 다운로드 받으실 수 있습니다.

http://www.jiniya.net/files/loveyou.zip

참고로 제작자 블로그는 http://stdcall.tistory.com/ 입니당. 예의상 홍보는 해주는 센스 ㅋㅋㅋ~ 윈도우 프로그래밍을 처음 배울 때 개발한 것 같아서 다소 의도하지 않은 효과들이 나타날 수 있습니다. 근데 그게 더 프로그램의 재미를 더해주는 것 같아요. 153k로 가장 여친을 즐겁게 해줄 수 있는 프로그램이 아닐까요? 참고로 여친 안계신 분은 직접 띄워놓고 감상하셔도 정신 건강에 좋을 것 같아요.

리누스 토발즈가 첨에 “I love …”을 화면에 막 출력하는 프로그램을 작성하고 뿌듯해 했다는 글이 떠오르는 프로그램이었습니다.

원 저작자 분께서 쿨하게 소스 코드까지 공개해 주셨습니다. 고쳐 쓰실 분들은 수정해서 사용하시면 되겠습니다. ㅋㅋ~

#include <windows.h>
#pragma comment(linker,"/subsystem:windows")
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE g_hInst;
HWND hWndMain;
LPCTSTR lpszClass=TEXT("Class");
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
,LPSTR lpszCmdParam,int nCmdShow)
{
HWND hWnd;
MSG Message;
WNDCLASS WndClass;
g_hInst=hInstance;

WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=WndProc;
WndClass.lpszClassName=lpszClass;
WndClass.lpszMenuName=NULL;
WndClass.style=CS_HREDRAW | CS_VREDRAW;
RegisterClass(&WndClass);

hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
NULL,(HMENU)NULL,hInstance,NULL);
ShowWindow(hWnd,SW_HIDE);

while (GetMessage(&Message,NULL,0,0)) {
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return (int)Message.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
//  HWND hWin;
HFONT hFontEdit;
HFONT oldFont;
static char *szName[5]={"사랑해~","I LOVE YOU","니가 좋아^^","♡","Loving you"};
static int i=0;
int name;
int Wx;
int Wy;
switch (iMessage) {
case WM_CREATE:

hWndMain=hWnd;
SetTimer(hWnd,1,50,NULL);
return 0;
case WM_TIMER:
if (i==0)
{
i++;
MessageBox(hWnd,"그만하까??","끝내기",MB_OK);

PostQuitMessage(0);
}
Wx=GetSystemMetrics(SM_CXSCREEN);
Wy=GetSystemMetrics(SM_CYSCREEN);

hWnd = GetDesktopWindow();//바탕화면의 윈도우

hdc = GetWindowDC(hWnd);//바탕화면에 그릴 준비

hFontEdit=CreateFont(rand()%50,0,rand()%1800,0,0,0,0,0,DEFAULT_CHARSET,0,0,0,0,TEXT("고딕"));

oldFont=(HFONT)SelectObject(hdc,hFontEdit);

SetTextColor(hdc,RGB(rand()%250+50,rand()%250+50,rand()%250+50));

SetBkMode(hdc,TRANSPARENT);

name=rand()%5;
TextOut(hdc,rand()%Wx,rand()%Wy,szName[name],strlen(szName[name]));

SelectObject(hdc,oldFont);

DeleteObject(hFontEdit);

ReleaseDC(hWnd, hdc);

DeleteObject(hdc);

return 0;
case WM_PAINT:
hdc=BeginPaint(hWnd, &ps);

//      TextOut(hdc,rand()%100,rand()%100,"11",2);

EndPaint(hWnd, &ps);
return 0;
case WM_DESTROY:
KillTimer(hWnd,1);
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

 0  0

 

@codemaru
돌아보니 좋은 날도 있었고, 나쁜 날도 있었다. 그런 나의 모든 소소한 일상과 배움을 기록한다. 여기에 기록된 모든 내용은 한 개인의 관점이고 의견이다. 내가 속한 조직과는 1도 상관이 없다.
(C) 2001 YoungJin Shin, 0일째 운영 중