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에 따라 라이센스가 부여됩니다.