Отличный ответ, спасибо! 
EDIT: good news --- 
you can place any custom *.pcx, *.def, *.bmp inside your plugin folder and it can be used directly. 
вы можете разместить любой заказ, *.pcx, *.def, *.bmp ..., внутри папки плагинов и его можно использовать напрямую.
  
EDIT2: after some thinking... started making a function for dynamic background. 
Lacks color but maybe that can be fixed... 
после некоторых размышлений, я начал делать функцию для динамического фона.
 
It works will all graphic modes as far as I could tell.
 
Code: 
 int create_standard_background(_Dlg_* dlg, int status_bar) 
{ 
    //dlg->AddItem(_DlgStaticPcx8_::Create(0, 0, min(dlg->width,256), min(dlg->height,256), 0, "DiBoxBck.pcx")); 
     
    int current_x, remaining_x, current_y, remaining_y, horizontal_row; 
 
    current_x = 0; 
    remaining_x = dlg->width; 
    current_y = 0; 
    remaining_y = dlg->height; 
    horizontal_row = 0; 
 
    if (remaining_x < 64 || remaining_y < 64) 
        return 0;  
 
    while (TRUE) {         
        while (TRUE) { // do horizontal pass first 
            if (remaining_x > 0) { 
                dlg->AddItem(_DlgStaticPcx8_::Create(current_x, horizontal_row * 256, min(remaining_x, 256), min(remaining_y, 256), 0, "DiBoxBck.pcx")); 
                current_x = current_x + 256; 
                remaining_x = remaining_x - 256; 
            } 
            else break; 
        }         
        current_x = 0;        // reset x position to 0         
        remaining_x = dlg->width; // reset length of horizontal line 
        remaining_y = remaining_y - 256; // update remaining y since we're done with horizontal pass 
        horizontal_row = horizontal_row + 1;    // we might be working on a new row soon if condition below is met         
        if (remaining_y <= 0)  
            break;        // no more rows to add 
    } 
 
    int top_left = 0; 
    int top_right = 1; 
    int bottom_left = 2; 
    int bottom_right = 3; 
    int left_middle = 4; 
    int right_middle = 5; 
    int top_middle = 6; 
    int bottom_middle = 7; 
 
    if (status_bar) { 
        bottom_left = 8; 
        bottom_right = 9; 
        bottom_middle = 10; 
    } 
 
    // add horizontal borders     
    current_x = 0; 
    remaining_x = dlg->width; 
    while (remaining_x >= 64) { 
        dlg->AddItem(_DlgStaticDef_::Create(current_x, 0, 0, "dialgbox.def", top_middle, 0, 0)); 
        dlg->AddItem(_DlgStaticDef_::Create(current_x, dlg->height - 64, 0, "dialgbox.def", bottom_middle, 0, 0)); 
        current_x += 64; 
        remaining_x -= 64; 
    } 
    // add vertical borders 
    current_y = 0; 
    remaining_y = dlg->height; 
    while (remaining_y >= 64) { 
        dlg->AddItem(_DlgStaticDef_::Create(0, current_y, 0, "dialgbox.def", left_middle, 0, 0)); 
        dlg->AddItem(_DlgStaticDef_::Create(dlg->width - 64, current_y, 0, "dialgbox.def", right_middle, 0, 0)); 
        current_y += 64; 
        remaining_y -= 64; 
    } 
 
    // add four corners 
    dlg->AddItem(_DlgStaticDef_::Create(0, 0, 0, "dialgbox.def", top_left, 0, 0)); 
    dlg->AddItem(_DlgStaticDef_::Create(0, dlg->height - 64, 0, "dialgbox.def", bottom_left, 0, 0)); 
    dlg->AddItem(_DlgStaticDef_::Create(dlg->width - 64, 0, 0, "dialgbox.def", top_right, 0, 0));     
    dlg->AddItem(_DlgStaticDef_::Create(dlg->width - 64, dlg->height - 64, 0, "dialgbox.def", bottom_right, 0, 0)); 
}
  
 
			 
			
			
			
				
(This post was last modified: 08.09.2017 10:24 by RoseKavalier.)
 
			 
		 |