关于CGridCtrl控件的InsertColumn函数,该怎么解决

关于CGridCtrl控件的InsertColumn函数,该怎么解决,第1张

控件创建都成功了,SetRowCount函数可以正常使用,为了设置对齐方式想用InsertColumn函数。

本来用SetItemFormat也可以设置文本对齐方式,但要一个一个设,麻烦。

实现这一“水”效果的步骤全部是在一个“图层样式”中完成的。因此一旦创建好这一效果,就可将它存储并应用到任何透明区域上具有硬边不透明度的图层中。这也意味着您可以在带有样式的图层上绘画,并呈现出栩栩如生的效果,看上去非常棒。建议采用以下字体和文档规格。该技术采用了一些基于像素的滤镜和基于点的文字,所以这些规格对于重现效果是很重要的。图像规格:1117x865像素(266dpi),RGB颜色。字体规格:Present,常规,60点。

1在要制作湿润效果的图层上方添加新的图层,并绘制出初始的水滴形状。现在,选择“图层”>“新建”>“图层”并点按“好”,或点按“图层”调板底部的“创建新的图层”图标。这将创建“图层1”。按(D)键盘键设置默认颜色,此时前景色色板将变成黑色。按(B)键盘键激活“画笔”工具,然后在上方的选项栏中进行如下设置:19像素的硬边画笔、正常模式、100%不透明度。现在在“图层1”中画一个小黑点并在画的时候稍微摆动一下画笔。我们将利用这个初始形状构建图层样式。按(Z)键盘键激活“缩放”工具并点按您画的水滴进行放大,这样可以看得更清楚。

2通过减少填充不透明度来构建图层样式。在“图层”调板中两次点按“图层1”缩览图,打开“图层样式”对话框。向下找到“高级混合”部分,将“填充不透明度”更改为3%。这会减少填充像素的不透明度,但保持图层中所绘制的形状。注意:该步骤会使您在“图层1”中绘制的黑色几近于消失。

3添加一小块浓厚的投影。在对话框左侧的效果列表中点按“投影”名称(不是复选框)。在右侧的“投影”部分,设置“不透明度”为100%,将“距离”更改为1像素,“大小”更改为1像素。在“品质”部分,点按“等高线”曲线缩览图右侧的向下小箭头并选择“高斯”曲线。这是一条看起来像平滑的倾斜的(S)字母的曲线。

4添加一个柔和的内阴影。在对话框左侧的效果列表中点按“内阴影”名称。 在“结构”部分,将“混合模式”设置为“颜色加深”,“不透明度”设置为43%,“大小”设置为10像素。

5在形状边缘周围另外添加一个内阴影。在对话框左侧的效果列表中点按“内发光”名称。在“结构”部分,将“混合模式”设置为“叠加”,“不透明度”设置为30%,颜色色板设置为黑色。若要更改颜色色板,可点按颜色色板打开拾色器,将光标拖动到黑色,然后点按“好”。

6在形状中添加高光和内发光。在对话框左侧的效果列表中点按“斜面和浮雕”名称。 在“结构”部分,将“方法”设置为“雕刻清晰”,“深度”设置为250%,“大小”设置为15像素,“软化”设置为10像素。 在“阴影”部分,将“角度”设置为90,“高度”设置为30,“不透明度”设置为100%。然后将“暗调模式”设置为“颜色减淡”,其颜色色板设置为白色,“不透明度”设置为37%。 现在已完成了图层样式的设置,但先不要点按“好”。

7存储此图层样式备以后使用。点按“图层样式”对话框右侧的“新建样式”按钮。这将打开一个对话框,您可以在其中命名该样式并点按“好”进行存储。 注意:存储完样式后,您可以通过选择“窗口”>“样式”,在打开的“样式”调板中最后一个缩览图的位置找到该样式。 现在点按“好”退出“图层样式”对话框。在“图层”调板中,点按图层样式(f)图标旁边的箭头来隐藏样式。注意:您可以在“图层1”上再绘制一些水滴。只需确保画笔工具处于活动状态并且在您希望出现水滴的位置进行绘制。您也可以使用“橡皮擦”工具来编辑或移去现有的水滴。

8在文档中添加文本图层。按(T)键盘键激活“文字工具”。 在上方的选项栏中,点按“调板”按钮打开“字符”调板。 在“字符”调板中选择所需的字体。将颜色设置为黑色。然后点按“段落”选项卡并点按调板左上部分的“居中文本”按钮。 现在点按文档中心并输入“RainDrops”。若要重新放置键入的文本,可将光标移动到文本之外直到光标变成一个移动图标,然后点按拖动。 若要应用文本,可点按选项栏右上方的对钩或按Enter键(Mac)或Ctrl-Enter键(Windows)。这样将会生成文字图层“RainDrops”。

9在文字图层下方添加新的白色图层并合并到文字图层中。保持“RainDrops”文字图层处于活动状态,按住Command键(Mac)或Ctrl键(Windows)点按“图层”调板底部的“创建新的图层”图标,在文字图层下方创建一个新的图层。此时将创建“图层2”。 通过按(D)键盘键载入默认颜色来用白色填充“图层2”。然后选择“编辑”>“填充”>“背景色”或按Command-Delete键(Mac)或Ctrl-Backspace键(Windows),用背景色填充图层。 点按“RainDrops”图层来激活该图层。 选择“图层”>“向下合并”或按Command-E键(Mac)或Ctrl-E键(Windows)。这将移去“RainDrops”图层并将其向下合并到“图层2”中。

10使用滤镜硬化合并图层的边缘。保持“图层2”处于活动状态,选择“滤镜”>“像素化”>“晶格化”。将“单元格大小”设置为10,然后点按“好”。

11模糊硬化后的文本/图像。保持“图层2”处于活动状态,选择“滤镜”>“模糊”>“高斯模糊”。 在对话框中将“半径”设置为50像素,然后点按“好”。

12选中柔化后的文本图像,然后通过增加对比度来硬化边缘。保持“图层2”处于活动状态,选择“图像”>“调整”>“色阶”。在“色阶”对话框中将“输入色阶”设置为160、100、190,然后点按“好”。

13从文本/图像中载入一个选区并删除白色区域。若要从“图层2”中载入一个选区,可按Command-Option-~键(Mac)或Ctrl-Alt-~键(Windows)。也可以通过点按“通道”选项卡,然后点按调板底部的“将通道作为选区载入”图标来完成该 *** 作。将载入选区并选定白色区域。按Delete键(Mac)或Backspace键(Windows)移去黑色文本周围的白色区域。现在可选择“选择”>“取消选择”来取消选择。

14将所存储的图层样式应用到黑色文本图层。保持“图层2”处于活动状态,选择“窗口”>“样式”来打开“样式”调板。 在缩览图列表的末尾找到您存储的“RainDrops”样式,点按该样式将其应用到“图层2”。

得到路径lpszFilePath 在对话框中打开 HBITMAP m_hbitmapBMP = (HBITMAP)LoadImage(AfxGetInstanceHandle(),lpszFilePath,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION); 然后在用ONPAINT()画上去 BitBlt(……);或者StretchBlt(); 这样比用picture properties 控件更好控制大小和位置。

在CMFCPropertyGridCtrl中显示都很正常。现在的问题是,如果改变CMFCPropertyGridCtrl中的某一项内容里,我想做进一步的处理,需要处理CMFCPropertyGridCtrl的OnPropertyChanged事件。这个OnPropertyChanged事件的处理应该在CMFCPropertyGridCtrl的父窗体中添加OnPropertyChanged事件,问题是它的父窗体是CMFCTabCtrl是动态生成的。我试过在MainView中添加OnPropertyChanged事件,没反应,根本就没有进去。

仅供参考:

   private void FormChart_Load(object sender, EventArgs e)

        {

            //生成DataTable

            DataTable dta = new DataTable("Test");

            dtaColumnsAdd("ID", typeof(SystemInt32));

            dtaColumnsAdd("Name", typeof(SystemString));

            dtaColumnsAdd("Address", typeof(SystemString));

            dtaColumnsAdd("Image",typeof(SystemByte[]));

            //路径

            string filePath = AppDomainCurrentDomainBaseDirectory + "\\image\\Status_OKpng";

            Image img = new Bitmap(filePath);           

            byte[] imgBytes = ImageToBytes(img);

 

            dtaRowsAdd(new object[] { 1, "张三", "北京市海淀区" , imgBytes });

            dtaRowsAdd(new object[] { 1, "李四", "北京市朝阳区", imgBytes });

            dtaRowsAdd(new object[] { 1, "王五", "北京市东城区", imgBytes });

            dtaRowsAdd(new object[] { 1, "赵六", "北京市西城区", imgBytes });

            dtaAcceptChanges();

 

            //设置行高

            gvRowHeight = 32;

           //格式化列

            RepositoryItemPictureEdit pic = new RepositoryItemPictureEdit();

            //居中

            picPictureAlignment = ContentAlignmentMiddleCenter;

            //垂直拉伸

            picSizeMode = DevExpressXtraEditorsControlsPictureSizeModeZoom;

            gvColumns["Image"]ColumnEdit = pic;

            

            //绑定

            gridDataSource = dta;

        }

        

        /// <summary>

        /// Image 转成 Byte[]

        /// </summary>

        /// <param name="image"></param>

        /// <returns></returns>

        public static byte[] ImageToBytes(Image image)

        {

            ImageFormat format = imageRawFormat;

            using (MemoryStream ms = new MemoryStream())

            {

                if (formatEquals(ImageFormatJpeg))

                {

                    imageSave(ms, ImageFormatJpeg);

                }

                else if (formatEquals(ImageFormatPng))

                {

                    imageSave(ms, ImageFormatPng);

                }

                else if (formatEquals(ImageFormatBmp))

                {

                    imageSave(ms, ImageFormatBmp);

                }

                else if (formatEquals(ImageFormatGif))

                {

                    imageSave(ms, ImageFormatGif);

                }

                else if (formatEquals(ImageFormatIcon))

                {

                    imageSave(ms, ImageFormatIcon);

                }

                byte[] buffer = new byte[msLength];

                //ImageSave()会改变MemoryStream的Position,需要重新Seek到Begin

                msSeek(0, SeekOriginBegin);

                msRead(buffer, 0, bufferLength);

                return buffer;

            }

        }

以上就是关于关于CGridCtrl控件的InsertColumn函数,该怎么解决全部的内容,包括:关于CGridCtrl控件的InsertColumn函数,该怎么解决、怎么让CGridCtrl复选框居中、MFC cgidctrl如何删除指定单元格内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9527287.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存