Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 351
от 10.09.2003, 17:00

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 1060
Отправлено ответов: 2405
Активность: 226.8 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

BOLT
Статус: Профессиональный
Общий рейтинг: 170.85
URL: Начинающему программитсу: софт, примеры, документация, Assembler, C & C++.
Телефон: Три раза АУ!
[Подробней >>]
Marouder
Статус: Профессиональный
Общий рейтинг: 121.98
URL: Первый Хабаровский Форум
Телефон: (4212) 21-93-65
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108.03
[Подробней >>]
 
Извращенок
Статус: Профессиональный
Общий рейтинг: 165.95
URL: Новосибирск
Телефон: (3832) 329836
[Подробней >>]
Yuri Gordienko
Статус: Профессиональный
Общий рейтинг: 118.12
URL: Досконально о С++, оптимизация программ, советы
[Подробней >>]
Vdr
Статус: Опытный
Общий рейтинг: 110.39
[Подробней >>]
 
Morgion
Статус: Доверительный
Общий рейтинг: 108.42
[Подробней >>]
Avl2k
Статус: Профессиональный
Общий рейтинг: 125.19
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 1054. Ув. эксперты! У меня 4 вопроса (Если можно приведите пример): 1. Как в системном меню переназначить ... (ответов: 4)
Вопрос № 1055. уважаемые эксперты я пишу игру на VC++ и столкнулся с одной проблемой. на моем основном поле игры (.... (ответов: 2)
Вопрос № 1056. Здравствуйте! Не подскажите, как в C++ Builder делать много однотипных диалогов, т.е. имеется главна... (ответов: 4)
Вопрос № 1057. Здравствуйте Эксперты... Как можно при помощи MAPI отправить письмо с текстом внутри на определенный... (ответов: 1)
Вопрос № 1058. Здравствуйте, эксперты ! Как сделать маленькое окошко, как у FlashGet корзинка? Видел такое во многи... (ответов: 3)
Вопрос № 1059. Добрый Вечер. Подскажите, пожалуйста, алгоритм проверки того, является ли введенное с клавиатуры чис... (ответов: 4)

Вопросов: 6, ответов: 18


 Вопрос № 1054

Ув. эксперты!
У меня 4 вопроса (Если можно приведите пример):
1. Как в системном меню переназначить пункт по умолчанию.
2. Как удалить из системного меню элементы помещенные туда Windows при создании окна, такие как Свернуть, Закрыть, ...
При этом кнопки в заголовке окна не должны изчезнуть и потерять функциональность, т.е., чтобы с помощью них можно было выполнять те же дейтсвия
3. Как в стандартном диалоге выбора папки отобразить кнопку Создать... (в 98 ее там по-умолчанию нет) и как обработать нажатие на нее.
4. Как в диалог MessageBox добавить свой элемент, например, флажок. Или же для этих целей люди пищут свои контролы
Если можно приведите пример



Вопрос отправлен: 06.09.2003, 19:46
Отправитель: lonfst

[Следующий вопрос >>] [Список вопросов]

Отвечает BOLT

Доброе время суток, lonfst!
3) Нужно присвоить класс диалогового окна к родственному, напрмер TDIalog.(В Visual C++)
4)Создаются дилоговые окна и на них ставятся нужные контроллы.

Да прибудет с тобой Великая Сила!
This message was created by EMan 1.5


Ответ отправлен: 06.09.2003, 23:37
Отправитель: BOLT


Отвечает Marouder

Приветствую Вас, lonfst!
4. Можно попробовать (не знаю, получится или нет) вызвать MessageBox, затем из другого потока найти по FindWindow его окно, создать с помощью CreateWindowEx там контрол, с помощью SetWindowLong установить новую оконную процедуру и.т.п.

Ответ отправлен: 07.09.2003, 10:31
Отправитель: Marouder


Отвечает vitya

Здравствуйте, lonfst!
1-2.CMenu* pSysMenu = GetSystemMenu(FALSE); -> так получаешь меню - дальше стандартными операциями, добавляешь или стираешь.
3. Изменение стандартного диалога, смотри в книги Круглинского.
4. в данном случае скорее всего придется создать свой собственный ресурс - диалог, в который надо добавить всего один флажок. 2 кнопки будут там по умолчанию.

Ответ отправлен: 07.09.2003, 11:03
Отправитель: vitya


Отвечает Извращенок

Приветствую Вас, lonfst!
Насчет первых трех - не знаю, а вот с MessageBox однозначно никак.

Ответ отправлен: 07.09.2003, 16:12
Отправитель: Извращенок


 Вопрос № 1055

уважаемые эксперты я пишу игру на VC++ и столкнулся с одной проблемой. на моем основном поле игры (.bmp file) мне нужно передвигать героя ,который нарисован на белом фоне (.jpg file) и этот белый фон мне совсем не нужен в игре. я новичок в VC++ & MFC ,надеюсь на вашу помощь...
спасибо.
сергей



Вопрос отправлен: 06.09.2003, 22:12
Отправитель: dfc_alive (dfc_alive@hotmail.com)

[Следующий вопрос >>] [Список вопросов]

Отвечает BOLT

Здравствуйте, dfc_alive!
Не понятно какой технологией ты пользуешься. Если MFC, - значит DirectX не катит.
Предполагаю что ты используешь функцию BitBlt. Я просмотрел справочник, заметил последний параметр dwRop - служит для растровых операций. Посмотри его, может он тебе поможет.

Да прибудет с тобой Великая Сила!
This message was created by EMan 1.5


Ответ отправлен: 06.09.2003, 23:37
Отправитель: BOLT


Отвечает Извращенок

Добрый день, dfc_alive!
Ну, лучше загружать все из bmp. В MSDN читай хелпу на функцию BitBlt (там нужно создавать две картинки, одна будет настоящей, другая - макской). Или пиши на ассемблере попиксельную прорисовку с использованием MMX.

Ответ отправлен: 07.09.2003, 16:12
Отправитель: Извращенок


 Вопрос № 1056

Здравствуйте!
Не подскажите, как в C++ Builder делать много однотипных диалогов,
т.е. имеется главная форма с кнопочкой и др. форма.
Нужно, при нажатии на кнопку чтобы появлялась КОПИЯ др. формы.



Вопрос отправлен: 07.09.2003, 01:06
Отправитель: Quas

[Следующий вопрос >>] [Список вопросов]

Отвечает BOLT

Доброе время суток, Quas!
вот так:
//---------------------------------------------------------------------------
#include
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TForm1 * myform;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
myform =
new TForm1(0);
myform->Left = Left + 20;
// для того чтобы увидел новую форму
myform->Top = Top + 20; // /
myform->Show();
}
//---------------------------------------------------------------------------

Да прибудет с тобой Великая Сила!
This message was created by EMan 1.5


Ответ отправлен: 08.09.2003, 18:31
Отправитель: BOLT


Отвечает Yuri Gordienko

Здравствуйте, Quas!
А что, new в CBuilder не работает?
Успехов

Ответ отправлен: 08.09.2003, 10:09
Отправитель: Yuri Gordienko


Отвечает Извращенок

Добрый день, Quas!
Создавай новый объект всей формы. Как будто регистрируешь окошко.

Ответ отправлен: 07.09.2003, 16:39
Отправитель: Извращенок


Отвечает Vdr

Приветствую Вас, Quas!
Что-то типа:
new *Form;
Form->Show();
Удачи!

Ответ отправлен: 09.09.2003, 12:13
Отправитель: Vdr


 Вопрос № 1057

Здравствуйте Эксперты...
Как можно при помощи MAPI отправить письмо с текстом внутри на определенный e-mail? Если можно небольшой примерчик.....



Вопрос отправлен: 07.09.2003, 11:32
Отправитель: Jogi (u_andriushi@pisem.net)

[Следующий вопрос >>] [Список вопросов]

Отвечает Извращенок

Приветствую Вас, Jogi!
В соверменных системах это сложно из-за повышенной безопасностию Лучше напрямую через протокол SMPT (см. RFC822). Если не хочешь - читай MSDN, там и примеры есть, и расписано все очень подробно.

Ответ отправлен: 07.09.2003, 16:12
Отправитель: Извращенок


 Вопрос № 1058

Здравствуйте, эксперты !
Как сделать маленькое окошко, как
у FlashGet корзинка? Видел такое
во многих приложениях.



Вопрос отправлен: 07.09.2003, 14:58
Отправитель: IceWINteR (brothers@atnet.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает BOLT

Добрый день, IceWINteR!
Стиль окна должен быть WS_DLGFRAME в MFC, в C++Builder свойство формы Borderstyle="bsNone".

Да прибудет с тобой Великая Сила!
This message was created by EMan 1.5


Ответ отправлен: 08.09.2003, 18:31
Отправитель: BOLT


Отвечает Yuri Gordienko

Доброе время суток, IceWINteR!
Используй CreateWindow, внимание обрати на третий параметр этой функции dwStyle. А вообще, хоть бы написал на чем пишешь, а то так - пальцем в небо.
Успехов

Ответ отправлен: 08.09.2003, 10:15
Отправитель: Yuri Gordienko


Отвечает Morgion

Здравствуйте, IceWINteR!
Делаешь окно без рамки(без WS_CAPTION) + стиль TOPMOST и рисуешь в него то, что тебе надо- будет хоть как в флешгете.

Ответ отправлен: 09.09.2003, 00:39
Отправитель: Morgion


 Вопрос № 1059

Добрый Вечер. Подскажите, пожалуйста, алгоритм проверки того, является ли введенное с клавиатуры число суммой квадратов трёх натуральных чисел ? Например, 29 - верное решение, так как 2*2+3*3+4*4 = 4+9+16 = 29. Так вот, как это реализовать на С++ ? Ясно, что два вложенных цикла, но не могу понять, как остановиться на необходимой итерации внешнего цикла, чтобы войти во внутренний цикл (если одно из необходимых значений удовлетворяет), и т.д., то есть как попасть в третий цикл (второй вложенный), чтобы найти третье число...



Вопрос отправлен: 07.09.2003, 15:48
Отправитель: Challenger

[Следующий вопрос >>] [Список вопросов]

Отвечает BOLT

Приветствую Вас, Challenger!
Вот код:

#include
using namespace std;
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
cout <<
"Enter, please a digit: ";
int digit;
cin >> digit;
for (int i=1;i for (int j=1;j for (int h=1;h if ((i*i+j*j+h*h) == digit)
{
cout << i <<
"^2 + " << j << "^2 + " << h << "^2"<< " = " << digit << endl;
goto exit;
}
exit:
cin.get();
// wait for enter
return 0;
}
//---------------------------------------------------------------------------

Да прибудет с тобой Великая Сила!
This message was created by EMan 1.5


Ответ отправлен: 08.09.2003, 18:31
Отправитель: BOLT


Отвечает Avl2k

Приветствую Вас, Challenger!
Если перебором, то можно сделать примерно так:
bool factorize( int num, int& i, int &j, int &k )
{
for(i = 1;;++i)
{
int d1 = num - i * i;
if( d1 <= 0 )
return false;
for(j = 1;;++j)
{
int d2 = d1 - j * j;
if( d2 <= 0 )
break;
for(k = 1;;++k)
{
int d3 = d2 - k * k;
if( d3 < 0 )
break;
if( d3 == 0 )
return true;
}
}
}
}
ostream& out_sq( ostream& os, int n )
{ return os << n << '*' << n; }
#define SQ(x) x << '*' << x
int main()
{
for( int num = 1; num < 50; ++num )
{
int a, b, c;
if( factorize( num, a, b, c ) )
cout << num << "= " << SQ( a ) << '+' << SQ( b ) << '+' << SQ( c ) << endl;
}
return 0;
}
С уважением, Avl2k.

Ответ отправлен: 08.09.2003, 13:53
Отправитель: Avl2k


Отвечает Извращенок

Добрый день, Challenger!
Хм. Самое кривое решение, просто не хотелось больше расписывать. Но я что-то не понял начет второго и третьего циклов...

Приложение:

Ответ отправлен: 07.09.2003, 16:40
Отправитель: Извращенок


Отвечает --- Нет данных ---

int n,flag=0;
...
for(i=1;(i*i for(j=i;(j*j if(sqrt(n-i*i-j*j)=int(sqrt(n-i*i-j*j)))flag=1;
if(flag)...//Yes
else...//No


Приложение:

Ответ отправлен: 09.09.2003, 18:11
Отправитель: --- Нет данных ---



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (32)
C / C++ (28)
Perl (5)
Builder / Delphi (18)
Pascal (21)
Basic / VBA (7)
Java / JavaScript (11)
PHP (10)
Криптография (7)
WinAPI (15)
Пользователю
Windows 95/98/Me (47)
Windows NT/2000/XP (62)
"Железо" (38)
Поиск информации (22)
Администратору
Windows NT/2000/XP (27)
Linux / Unix (10)
Юристу
Гражданское право (8)
Семейное право (5)
Трудовое право (6)
КоАП (5)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное