演示程序下载:http://download.csdn.net/detail/jiangcaiyang123/4061511
程序的操作方法:回车键:打开文件,上下左右键用来移动位于上方的图片。这是我开发时候的截图:
首先点击“添加→资源”,如下图所示。
选择“导入”,如下图所示。
文件类型选“所有文件”,然后点击我们想要载入的.png或者是.jpg文件,点击打开。如下图所示。
在自定义资源类型对话框中,输入RC_DATA,然后点确定。如下图所示。
现在我们载入的图像文件已经变成一系列二进制文本了。如下图所示。
编译.rc文件,就剩下载入代码没有写了。载入时,使用D3DXCreateTextureFromResourceEx()函数。当然使用它的简单版本D3DXCreateTextureFromResourceEx()也是可以的。下面是该函数的使用方法:
hr = D3DXCreateTextureFromResourceEx( // 从资源创建纹理 m_pDevice, // DIRECT3DDEVICE9结构指针 NULL, // 模块句柄 MAKEINTRESOURCE( IDR_RCDATA1 ), // 载入的图像资源名称 D3DX_DEFAULT, // 宽 D3DX_DEFAULT, // 高 D3DX_FROM_FILE, // mip级别 0, // 用途 D3DFMT_A8R8G8B8, // 格式 D3DPOOL_MANAGED, // 内存池格式 D3DX_DEFAULT, // 滤波器 D3DX_DEFAULT, // mip滤波器 0, // 关键色(作掩码用) &imageInfo, // 源文件信息 NULL, // 调色板 &m_pTexBackground );
void CRenderByFileDialog::BrowseImageFile( void ) // 浏览并且获取图像文件的路径 { CFileDialog imageFileDlg( TRUE, TEXT( ".jpg" ), m_CurImageFile.c_str( ), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, TEXT( "JPG/JPEG文件\0*.jpg\0PNG文件\0*.png\0所有文件\0*.*" ), NULL ); if ( IDOK == imageFileDlg.DoModal( ) ) { m_CurImageFile = imageFileDlg.m_szFileName; } }
以下就是程序的截图: