Уроки по DirectX. Использование графики (Direct3D,
DirectDraw), звука, взаимодействие с пользователем (DirectInput).
Применение DirectX в Visual C++, Visual Basic и др., на платформе .NET
(языки C#, VB.NET). Каждый урок расчитан на 15-20 минут.
FAQ по C#. Вопрос 1. Как использовать API-функции в C#?
Для использования в программе API-функций надо, во-первых, добавить постранство имен System.Runtime.InteropServices, во-вторых, добавить заголовок нужной API-функции и в-третьих, вызвать ее в нужном месте.
Вот пример:
using System;
...
//Добавление пространства именusing System.Runtime.InteropServices;
...
//Добавление заголовка[DllImport("user32.dll", EntryPoint="MessageBox")]
public static extern int MessageBox(int hWnd,
String strMessage, String strCaption, uint uiType);
...
private void button1_Click(object sender, System.EventArgs e)
{
//Вызов API-функцииMessageBox(0, "Hello!", "Caption", 0);
}
...
В указанном примере при нажатии на кнопку выскочит MessageBox (путем вызова соответствующей API-функции).
FAQ по C#. Вопрос 2. Как вывести на форму картинку из файла?
Вот два примера кода:
Image img = Image.FromFile("1.bmp");
//Создаем новый элемент типа PictureBox.
PictureBox pbox = new PictureBox();
//Задаем параметры PictureBox.
pbox.Image=img;
pbox.Width=48;
pbox.Height=48;
pbox.Left=0;
pbox.Top=0;
pbox.Visible=true;
//Добавляем элемент на форму.this.Controls.Add(pbox);
В этом примере каждый созданный рисунок будет представлять из себя элемент на форме (и, как следствие, требовать дополнительных ресурсов). У него будет и свой HWND (идентификатор окна в Windows).
Второй пример:
//Создаем объект типа Graphics.
Graphics g;
Image img = Image.FromFile("1.bmp");
//Приписываем g к нашему окну.
g=this.CreateGraphics();
//Выводим на g рисунок.
g.DrawImage(img, 0, 0);
Во втором примере ресурсы используются более экономно - рисунок не будет иметь своего HWND и не будет занимать дополнительные ресурсы.