Win 32 SDK 함수 Message Box 의 시 뮬 레이 션 실현(C 언어 버 전)
3423 단어 message
#include <stdio.h>
#define MB_OK 0x00000000
#define MB_OKCANCEL 0x00000001
#define MB_ICONHAND 0x00000010
#define MB_ICONQUESTION 0x00000020
#define MAX_RESULT 0xFFFFFFFF
int MessageBox(const char *context, unsigned int type)
{
if(MAX_RESULT == (~MB_ICONHAND | type))
{
printf("\t : \t");
}
else if(MAX_RESULT == (~MB_ICONQUESTION | type))
{
printf("\t : \t");
}
printf(" :%s\t", context);
if(MAX_RESULT == (~MB_OKCANCEL | type))
{
printf(" : \t");
}
else if(MAX_RESULT == ((~MB_OK | type)))
{
printf(" : \t");
}
putchar('
');
return 0;
}
int main(int argc, char *argv[])
{
//unsigned int m_o = 0x00000001, m_o1 = 0x00000020, m_o2 = m_o | m_o1;
//printf("%x", ~m_o | m_o2);
MessageBox("hello, world", MB_OK | MB_ICONHAND);
MessageBox("hello, world", MB_OK | MB_ICONQUESTION);
MessageBox("hello, world", MB_OKCANCEL | MB_ICONHAND);
MessageBox("hello, world", MB_OKCANCEL | MB_ICONQUESTION);
printf("---------------------------------------------------
");
MessageBox("hello, world", MB_OK);
MessageBox("hello, world", MB_OKCANCEL);
MessageBox("hello, world", MB_ICONHAND);
MessageBox("hello, world", MB_ICONQUESTION);
return 0;
}
버 전 2:비트 연산 의 특성 을 충분히 이용 하여 코드 량 을 크게 줄 였 습 니 다.
#include <stdio.h>
#define MB_OK 0x00000000
#define MB_OKCANCEL 0x00000001
#define MB_ABORTRETRYIGNORE 0x00000002
#define MB_ICONHAND 0x00000010
#define MB_ICONQUESTION 0x00000020
#define MB_TYPEMASK 0x0000000F
#define MB_ICONMASK 0x000000F0
#define MB_VALIDATE 0x00000000
char *TypeText[3] = {{"OK"},{"OK CANCEL"},{"ABORT RETRY IGNORE"}};
char *Icon[2] = {{"ICONHAND"}, {"ICONQUESTION"}};
int MessageBox(const char *context, unsigned int type)
{
printf(TypeText[type & MB_TYPEMASK]);
putchar('
');
printf(" :%s\t", context);
putchar('
');
if((type & MB_ICONMASK) == MB_VALIDATE)
{
printf("
-------------------------
");
return -1;
}
printf(Icon[((type & MB_ICONMASK)>>4) - 1]);
printf("
-------------------------
");
return 0;
}
int main(int argc, char *argv[])
{
MessageBox("hello, world", MB_OK | MB_ICONHAND);
MessageBox("hello, world", MB_OK | MB_ICONQUESTION);
MessageBox("hello, world", MB_OKCANCEL | MB_ICONHAND);
MessageBox("hello, world", MB_OKCANCEL | MB_ICONQUESTION);
MessageBox("hello, world", MB_OK);
MessageBox("hello, world", MB_OKCANCEL);
MessageBox("hello, world", MB_ICONHAND);
MessageBox("hello, world", MB_ICONQUESTION);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Xcode8.x의 메시지 창에 표시되는 시스템 메시지를 숨기기 【Xcode8.x】이런 녀석↓ 메뉴 : Product → Schema → Edit Schema로 추적하고 Argument를 선택. Enviroment Variables 의 + 를 클릭하고 OS_ACTIVITY_MODE 를 추가하여 d...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.