⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 listbox_liz.c

📁 上传的是minigui的代码
💻 C
📖 第 1 页 / 共 2 页
字号:
                break;                        }        return DefaultDialogProc (hDlg, message, wParam, lParam);}static void InitDialogBox (HWND hWnd){        DlgInitProgress.controls = CtrlInitProgress;        DialogBoxIndirectParam (&DlgInitProgress, hWnd, InitDialogBoxProc, 0L);}/******************************************************************************* *   desc: disp item with blue or lightgray *------------------------------------------------------------------------------ *  param: HDC hdc  *         i_index  the index        i_focus  the focus *------------------------------------------------------------------------------ * return: *******************************************************************************/int disp_item( HDC hdc, const int i_index){#if 1    if(i_index == i_focus ) {        FillBoxWithBitmap (hdc, rc_list[i_index].left, rc_list[i_index].top, 200, 20 , &bmp2);                            } else {        FillBoxWithBitmap (hdc, rc_list[i_index].left, rc_list[i_index].top, 200, 20 , &bmp1);    }#endif            // 画长方形框    //FillBox( hdc, rc_list[i_index].left, rc_list[i_index].top, 200, 20 );    Rectangle( hdc, rc_list[i_index].left, rc_list[i_index].top, rc_list[i_index].right, rc_list[i_index].bottom );         // 显示值   SelectFont( hdc, disp_font );   SetBkMode( hdc, BM_TRANSPARENT );   //SetBkColor( hdc, PIXEL_lightgray );   SetTextColor( hdc, PIXEL_red );   DrawText( hdc, psz_list[i_index], -1, &rc_list[i_index], DT_NOCLIP|DT_SINGLELINE|DT_CENTER|DT_VCENTER );    return  1;}/******************************************************************************* *   desc: init list *------------------------------------------------------------------------------ *  param:  *          *------------------------------------------------------------------------------ * return: *******************************************************************************/int disp_list( HWND hWnd, HDC hdc){    int i, top_y=10;    // 创建列表字体风格    disp_font = CreateLogFont (NULL, "Arial", "ISO8859-1",                     FONT_WEIGHT_BOOK, FONT_SLANT_ROMAN, FONT_SETWIDTH_NORMAL,                    FONT_SPACING_CHARCELL, FONT_UNDERLINE_NONE, FONT_STRUCKOUT_NONE,                     15, 0);    disp_font1 = CreateLogFont (NULL, "Arial", "ISO8859-1",                     FONT_WEIGHT_BOOK, FONT_SLANT_ROMAN, FONT_SETWIDTH_NORMAL,                    FONT_SPACING_CHARCELL, FONT_UNDERLINE_NONE, FONT_STRUCKOUT_NONE,                     30, 0);        rc_text.left    = 85;       //显示框 当摁空格时 显示选择的项    rc_text.top     = 300;    rc_text.right   = 285;    rc_text.bottom  = 330;    i_focus = 0;    // 把初始焦点设置在第yi个选项    pg_focus= 0;   //初始页第一页    for( i=0; i<M_MAX; i++, top_y+=M_LINE_HEIGHT ) {            // 设置rect数组 如果到第四个了 重置初始值            if(i%4 == 0)                                    top_y = 10;                        rc_list[i].left     = 85;            rc_list[i].top      = top_y;            rc_list[i].right    = 285;            rc_list[i].bottom   = top_y + 20;                       // disp_item( hdc, i);            bmp2.bmType = BMP_TYPE_ALPHACHANNEL;            bmp2.bmAlpha = 255;#if 0            bmp1.bmType = BMP_TYPE_ALPHACHANNEL | BMP_TYPE_COLORKEY;            bmp1.bmColorKey = GetPixelInBitmap (&bmp1, 0, 0);            bmp1.bmAlpha = 220;#endif                }    return  1;}int disp_page(HDC hdc, int pg_focus)                //print page{        int i,  n=pg_focus*g_page_line;        for( i=0; (i<g_page_line)&&(psz_list[n]!="NE"); i++,n++){            disp_item(hdc, n);        }}static int ListBoxWinProc( HWND hWnd, int message, WPARAM wParam, LPARAM lParam ){    HDC hdc,hdc1;    int i_prev;    HWND hwnd,timeedit;    hdc = GetPrivateClientDC( hWnd );            switch( message ) {#if 1    case  MSG_CREATE:        LoadBitmap (HDC_SCREEN, &bmp1, "hills.jpg");        LoadBitmap (HDC_SCREEN, &bmp2, "sunset.jpg");        disp_list(hWnd, hdc);               break;#endif            case  MSG_KEYDOWN:          switch(wParam){        case  SCANCODE_CURSORBLOCKUP:            printf( "enter key up\n" );            if( (i_focus%g_page_line) > 0 ) {                i_prev  = i_focus;                i_focus--;                //disp_item( hdc, i_prev);                //disp_item( hdc, i_focus);                }                  else if(( i_focus%g_page_line == 0 ) && ( pg_focus > 0 )){                    pg_focus--;                    i_focus=pg_focus*g_page_line+3;                                      }                InvalidateRect(hWnd, NULL, TRUE);                   break;        case  SCANCODE_CURSORBLOCKDOWN:            printf( "enter key down\n" );            if( (( i_focus%g_page_line)< g_page_line-1 )&&( psz_list[i_focus+1]!="NE" )) {                i_prev  = i_focus;                i_focus++;                //disp_item( hdc, i_prev);                //disp_item( hdc, i_focus);                           }              else if(( i_focus%g_page_line == g_page_line-1 ) && ( psz_list[i_focus+1]!="NE" ) && ( pg_focus < pg_max )){                pg_focus++;                i_focus=pg_focus*g_page_line;                                            }            InvalidateRect(hWnd, NULL, TRUE);                 break;        case  SCANCODE_ENTER:#if 0                   SelectFont( hdc, disp_font1 );            SetBkMode( hdc, BM_OPAQUE );            SetTextColor( hdc, PIXEL_blue );            DrawText( hdc, "               ", -1, &rc_text, DT_NOCLIP|DT_SINGLELINE|DT_CENTER|DT_VCENTER );            DrawText( hdc, psz_list[i_focus], -1, &rc_text, DT_NOCLIP|DT_SINGLELINE|DT_CENTER|DT_VCENTER );#endif                     // MessageBox (hWnd, psz_list[i_focus], "阅读", MB_OK | MB_ICONINFORMATION);           switch(i_focus){                case 0:                hwndcominfo = CreateWindow (MY_CTRL_INFO, "oo", WS_VISIBLE, IDC_STATIC, 60, 120, 280, 130, hWnd, 0);                printf("%d\n", hwndcominfo );                break;                            case 2:                InitDialogBox(hWnd);                break;                case 3:                printf("enter 3\n");                show_resolution(hWnd);                break;                case 4:                                   GDIDemo_TransparentBitmaps (hWnd, hdc);                break;                case 7:                printf("enter 7\n");                UnloadBitmap (&bmp1);                UnloadBitmap (&bmp1);                DestroyMainWindow( hWnd );                PostQuitMessage( hWnd );                break;                                            }            break;                    case  SCANCODE_CURSORBLOCKRIGHT:            if( pg_focus < pg_max ){            pg_focus++;            i_focus=pg_focus*g_page_line;            InvalidateRect(hWnd, NULL, TRUE);                }            break;                                    case  SCANCODE_CURSORBLOCKLEFT:            if( pg_focus > 0 ){            pg_focus--;            i_focus=pg_focus*g_page_line;            InvalidateRect(hWnd, NULL, TRUE);                  }            break;                        case  SCANCODE_PAGEDOWN:            if( i_focus%g_page_line != g_page_line-1 ){                if( pg_focus < pg_max )                    i_focus = pg_focus*g_page_line+3;                  else if( pg_focus == pg_max )                    i_focus = M_MAX-2;                              }                else if( i_focus%g_page_line == g_page_line-1 ){                    if( pg_focus < pg_max-1 ){                        pg_focus++;                        i_focus = pg_focus*g_page_line+3;                    }                      else if( pg_focus == pg_max-1 ){                        pg_focus++;                        i_focus = M_MAX-2;                      }                }            InvalidateRect(hWnd, NULL, TRUE);             break;           case  SCANCODE_PAGEUP:            if( i_focus%g_page_line != 0 )                i_focus = pg_focus*g_page_line;                                 else if( pg_focus > 0 ){                    pg_focus--;                             i_focus = pg_focus*g_page_line;                }                  InvalidateRect(hWnd, NULL, TRUE);             break;                   case SCANCODE_ESCAPE :            printf("esc is print!\n");            DestroyWindow(GetDlgItem(hWnd,IDC_STATIC2 ));            //printf("post is enter\n");            PostMessage(hwndcominfo, MSG_CLOSE, 0, 0);            //DestroyWindow(hwndcominfo);                        //UnregisterWindowClass (MY_CTRL_INFO);            InvalidateRect (hWnd, NULL, TRUE);             break;                                }        break;    case MSG_CHAR:        switch (wParam) {        case 'q':         case 'Q':                printf("Q is print!\n");            DestroyWindow(GetDlgItem(hWnd,IDC_STATIC2 ));     //销毁静态框窗口            break;         }        break;            case  MSG_PAINT:        hdc = BeginPaint( hWnd );        disp_page(hdc, pg_focus);        EndPaint( hWnd, hdc );        break;                case  MSG_DESTROY:        DestroyAllControls( hWnd );        DestroyLogFont( disp_font );	    break;    case  MSG_CLOSE:        UnloadBitmap (&bmp1);        UnloadBitmap (&bmp1);        DestroyMainWindow( hWnd );        PostQuitMessage( hWnd );        break;    default:            break;    }    return  DefaultMainWinProc( hWnd, message, wParam, lParam );}int MiniGUIMain( int argc, const char* argv[] ){    MSG Msg;    HWND hMainWnd;    MAINWINCREATE CreateInfo;#ifdef _MGRM_PROCESSES    JoinLayer(NAME_DEF_LAYER , "timeeditor" , 0 , 0);#endif    RegisterComInfo();    CreateInfo.dwStyle      = WS_CAPTION | WS_BORDER | WS_VISIBLE;    CreateInfo.dwExStyle    = WS_EX_USEPRIVATECDC;    CreateInfo.spCaption    = "list choose";    CreateInfo.hMenu        = 0;    CreateInfo.hCursor      = GetSystemCursor(0);    CreateInfo.hIcon        = 0;    CreateInfo.MainWindowProc = ListBoxWinProc;    CreateInfo.lx           = 0;     CreateInfo.ty           = 0;    CreateInfo.rx           = 400;    CreateInfo.by           = 400;    CreateInfo.iBkColor     = PIXEL_green;    CreateInfo.dwAddData    = 0;    CreateInfo.hHosting     = HWND_DESKTOP;        hMainWnd = CreateMainWindow( &CreateInfo );    if( hMainWnd == HWND_INVALID )        return  3;    ShowWindow( hMainWnd, SW_SHOWNORMAL );    while( GetMessage(&Msg, hMainWnd) ) {        TranslateMessage( &Msg );        DispatchMessage( &Msg );    }    MainWindowThreadCleanup( hMainWnd );   /* MiniGUIExtCleanUp ();*/#ifdef _LITE_VERSION    TermVectorialFonts();#endif    return 0;}#ifndef _LITE_VERSION#include <minigui/dti.c>#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -