Новые книги

В учебном пособии изложены история возникновения меню, его виды, структура, порядок составления, анализа и оптимизации. Рассмотрены особенности транслитерации, визуализации меню, его диверсификации и обновления. Особое внимание уделено использованию новых инновационных технологий, применяемых при составлении меню, включая электронное меню. В учебном пособии приведены основные термины, используемые в меню, в том числе на нескольких иностранных языках. Для закрепления теоретических знаний предлагаются практические задания и контрольные вопросы.

Для студентов бакалавриата и магистратуры, преподавателей вузов, а также для специалистов, работающих в сфере сервиса и туризма.
Не так давно от столь популярного в наше время прилагательного «креативный»1 образовалось новое существительное. Если вы — один из нас, миллионов людей, зарабатывающих на жизнь своим умом, вас можно смело назвать представителем «креативного класса», или попросту — креативщиком. Каждый день вы решаете проблемы, предлагаете нововведения, разрабатываете системы, создаете дизайнерские решения, пишете, занимаетесь стратегическим планированием и работаете головой. Именно благодаря вам рождаются новые концепции и формируются целые рабочие системы, закладывающие основу будущего экономического роста, — создается принципиально новый продукт, которого не было и в помине, пока на сцену не вышли вы.

Может быть, вы вовсе и не собирались становиться творческой личностью. Более того, возможно, вы даже содрогаетесь всякий раз, когда вас называют «креативным». И это вполне понятно, ведь ярлык «креативщик» обычно вызывает в воображении этакого рекламного гуру из Сохо2, мельтешащего туда-сюда в своих фирменных джинсах за 500 долларов. Скорее всего, вам приятнее называть себя стратегом или менеджером, что звучит более определенно, более реально. Называйте себя как пожелаете, но если вы отвечаете за решение проблем, разработку стратегий или напряженно трудитесь над генерированием новых идей, я буду называть вас креативщиком, даже если выходит, что вы стали им случайно.

FAQ Part 1

Visual C++ / FAQ Part 1

Как сделать так, чтобы при редактировании были видны комментарии для _своих_ методов или переменных?
1. Надо отметить, если не отмечено, все опции флажками в Tools/Options/Statement completion options;
2. Оставлять комментарии _перед_ объявлением, как например:

//Minimize to tray 
//Надо ли минимизировать в System Tray
 BOOL bTrayMin;
Как сделать так, чтобы показывалось только имя приложения?

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
        if( !CFrameWnd::PreCreateWindow(cs) )
                return FALSE;
        cs.style &= ~(FWS_PREFIXTITLE|FWS_ADDTOTITLE);
        return TRUE;
}
Как в консольной программе выводить цветные надписи и менять палитру?
 
=== Hачало CTEST.CPP ===
#include 

void main()
{
 HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
 SMALL_RECT srct;
 CHAR_INFO chiBuffer[160];
 COORD coord1, coord2;
 char ddd[666];
 CharToOem("2:5095/38 - злобный ламеpюга", ddd);
 DWORD cWritten;
 coord1.Y = 0; coord1.X = 0;
 hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
 WriteConsoleOutputCharacter(hStdout, ddd, lstrlen(ddd), coord1, &cWritten);
 for (int i = 0; i < lstrlen(ddd); i++)
 {
  WORD wColors = 1 + i * 3;
  coord1.X = i;
  WriteConsoleOutputAttribute(hStdout, &wColors, 1, coord1, &cWritten);
 }
 srct.Top = 0; srct.Left = 0; srct.Bottom = 1; srct.Right = 79;
 coord1.Y = 0; coord1.X = 0;
 coord2.Y = 1; coord2.X = 80;
 ReadConsoleOutput(hStdout, chiBuffer, coord2, coord1, &srct);
 for (i = 0; i < 50; i++)
 {
  srct.Left = (SHORT)((double)(79 - lstrlen(ddd)) * rand() / RAND_MAX);
  srct.Top = (SHORT)((double)25 * rand() / RAND_MAX);
  srct.Bottom = srct.Top + 1;
  WriteConsoleOutput(hStdout, chiBuffer, coord2, coord1, &srct);
 }
 Sleep(10000);
}
=== Конец CTEST.CPP ===
Как подгрузить Riched32.dll в InitInstance()?
 
BOOL CTestApp::InitInstance()
{
    HMODULE    hmod = LoadLibrary("Riched32.dll"); //Загружаем
    if(hmod == NULL){
        AfxMessageBox("RichEdit пахать не будет");
        return false;
    }

    CTestDlg dlg;
    m_pMainWnd = &dlg;
    int nResponse = dlg.DoModal(); // в TestDlg нарисован RichEdit

    FreeLibrary(hmod);    //Выгружаем

    return false;
}
Как программно определить тип файловой системы?
Используйте Win32 API - функцию GetVolumeInformation(...)

Как на VC5.0 создать окошко на full-screen?
 
BOOL CMyWnd::Create()                                                          
{                                                                              
...                                                                            
CRect rect(0, 0, GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN)); 
strClass - заpегистpиpованный оконный класс.                                   
CreateEx(WS_EX_APPWINDOW, strClass, AfxGetAppName(), WS_SYSMENU | WS_POPUP | 
WS_VISIBLE, 0, 0, rect.right, rect.bottom, NULL, NULL, 0);                   
...                                                                            
}
или
 hwnd=CreateWindowEx(0, "Name", "Title",
        WS_POPUP|WS_SYSMENU, 0, 0,
        GetSystemMetrics(SM_CXSCREEN),
        GetSystemMetrics(SM_CYSCREEN),
        0, 0, hInstance, 0);
Как занести строку из CEdit'a в CListBox?
 
m_Edit.SetWindowText("aaa\r\nbbb\r\nccc");
// в Edit теперь три строки. Ловим первую
char    buffer[100];                           // Выделяем буфер
int    count = m_Edit.GetLine(0,       // индекс строки
                              buffer,              // указатель на буфер
                              sizeof(buffer));  // размер буфера
// Если OK, то возвращает кол-во скопированных символов
buffer[count] = 0;           // Скопированная строка не заканчивается \0
m_ListBox.AddString(buffer); // В данном случае "aaa"
или с помощью MFC:
 
CTreeCtrl *list = (CTreeCtrl*)GetDlgItem(IDC_TREE);
list->InsertItem( string, NULL, TVI_LAST );
    
Почему функция CreateProcess не запускает *.lnk-файлы?
Потому что она создает процессы только для _запускаемых_ файлов. *.lnk-файлы не являются запускаемыми.Чтобы это сделать используйте ShellExecute.

Как поменять указатель мыши со стрелки на часики и обратно?
Используйте функции BeginWaitCursor() и EndWaitCursor(). Есть еще один (из многих) путь:
 
void CTest::MyBiiiiigFunc()
{
    CWaitCursor    wait;
    for(int j=0; j<0x7ffffff; j++){
        //......
        Sleep(1000);
        // И тут все время крутятся часики
    }
} // А вот тут их уже нет.
    
При создании объекта курсор заменяется на часики дефолтным конструктором. Деструктором - восстанавливается прежний.

Как заставить CHttpFile принудительно передавать файлы в бинарном виде?
По умолчанию незвестным типам файлов MFC присваивает тип text/plain. Чтобы принудительно установить бинарный режим передачи, укажите тип как application/x-ofc.
Prev. Part Оглавление Next Part