{"id":12,"date":"2005-03-23T10:04:36","date_gmt":"2005-03-23T15:04:36","guid":{"rendered":"http:\/\/www.latindevelopers.com\/ivancp\/2005\/04\/un-control-chart-para-visual-c\/ivancp\/"},"modified":"2011-02-08T00:34:27","modified_gmt":"2011-02-08T05:34:27","slug":"un-control-chart-para-visual-c","status":"publish","type":"post","link":"https:\/\/www.latindevelopers.com\/ivancp\/2005\/03\/un-control-chart-para-visual-c\/","title":{"rendered":"Un control chart para Visual C++"},"content":{"rendered":"<p>Un dia domingo despues de googlear en la busqueda de un control chart que fuera totalmente funcional para incluirlo como componente en Visual C++ , decid\u00ed programar mi propio control, ya que los que encontr\u00e9 eran muy pesados para distribuir (Objetos OLE) \u00f3 las clases ofrecian tanto que llegaban a ser tan complejas que la integraci\u00f3n con un proyecto se hacia muy dificil.<\/p>\n<p>En realidad no fue nada sencillo, por que tenia muchos factores importantes para tomar en cuenta, pero lo que necesitaba en esa semana era un control que muestre graficas de barra y sectores (nada mas).<\/p>\n<p>Cuando termin\u00e9 de programarlo tuve que lidiar con el parpadeo y algunos otros problemas adicionales, Finalmente modifiqu\u00e9 el modo de pintado del control con double buffering. Una tecnica muy utilizada en la computaci\u00f3n grafica.<\/p>\n<p>Al dia siguiente no podia creer que habia programado tal cosa en tan poco tiempo&#8230; y decid\u00ed enviar el codigo fuente a otras personas.<\/p>\n<p>Aqui les muestro una imagen del control NSChart corriendo en un dialogo. (puede correr sobre casi cualquier classe basada en CWnd)<\/p>\n<p align=\"center\"><img src=\"http:\/\/www.latindevelopers.com\/ivancp\/images\/nschart.gif\" \/><\/p>\n<p>Este control puede ser de mucha utilidad para programadores Visual C++. Su sencillez hizo que Personas como : Mervyn Jose Fundador de <a href=\"http:\/\/www.siteall.com\">SiteAll.com<\/a>, Randall Barber de <a href=\"http:\/\/www.mw-inc.com\/\">MicroWorks Inc.<\/a> , y otros mas, lo utilizaran en la implementacion de sus aplicaciones.<\/p>\n<p>Lo que queda por implementar en este control es:<\/p>\n<ul>\n<li>Valores negativos.<\/li>\n<li>Otras formas de mostrar la data: lineas, sectores extendidos, barras apiladas, etc.<\/li>\n<li>Mejorar el ajuste de distribuci\u00f3n segun el espacio disponible.<\/li>\n<li>Exportar a JPG, GIF, PNG, etc.<\/li>\n<\/ul>\n<p>Si alguien esta interesado en agregarle (por lo pronto) alguna funcionalidad, puede descargarse el codigo fuente completo y el proyecto de ejemplo en los siguientes sitios: <a href=\"http:\/\/www.codeproject.com\/miscctrl\/nschart.asp\">CodeProject.com<\/a> y<br \/>\n<a href=\"http:\/\/www.codeguru.com\/Cpp\/controls\/controls\/chartingandanaloguecontrols\/article.php\/c7779\/\">Codeguru.com<\/a><\/p>\n<p>Version en Espa\u00f1ol<br \/>\n<a href=\"http:\/\/www.latindevelopers.com\/vcpp\/misc\/nschart\/\">http:\/\/www.latindevelopers.com\/vcpp\/misc\/nschart\/<\/a><\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Compartelo:<\/h3><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-12\" class=\"share-facebook sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2005\/03\/un-control-chart-para-visual-c\/?share=facebook\" target=\"_blank\" title=\"Haz clic para compartir en Facebook\"><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-12\" class=\"share-twitter sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2005\/03\/un-control-chart-para-visual-c\/?share=twitter\" target=\"_blank\" title=\"Haz clic para compartir en Twitter\"><span>Twitter<\/span><\/a><\/li><li><a href=\"#\" class=\"sharing-anchor sd-button share-more\"><span>M\u00e1s<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><div class=\"sharing-hidden\"><div class=\"inner\" style=\"display: none;\"><ul><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2005\/03\/un-control-chart-para-visual-c\/?share=email\" target=\"_blank\" title=\"Haz clic para enviar por correo electr\u00f3nico a un amigo\"><span>Correo electr\u00f3nico<\/span><\/a><\/li><li class=\"share-print\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-print sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2005\/03\/un-control-chart-para-visual-c\/\" target=\"_blank\" title=\"Haz clic para imprimir\"><span>Imprimir<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-12\" class=\"share-linkedin sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2005\/03\/un-control-chart-para-visual-c\/?share=linkedin\" target=\"_blank\" title=\"Haz clic para compartir en LinkedIn\"><span>LinkedIn<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Un dia domingo despues de googlear en la busqueda de un control chart que fuera totalmente funcional para incluirlo como componente en Visual C++ , decid\u00ed programar mi propio control, ya que los que encontr\u00e9 eran muy pesados para distribuir &hellip; <a href=\"https:\/\/www.latindevelopers.com\/ivancp\/2005\/03\/un-control-chart-para-visual-c\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Compartelo:<\/h3><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-12\" class=\"share-facebook sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2005\/03\/un-control-chart-para-visual-c\/?share=facebook\" target=\"_blank\" title=\"Haz clic para compartir en Facebook\"><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-12\" class=\"share-twitter sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2005\/03\/un-control-chart-para-visual-c\/?share=twitter\" target=\"_blank\" title=\"Haz clic para compartir en Twitter\"><span>Twitter<\/span><\/a><\/li><li><a href=\"#\" class=\"sharing-anchor sd-button share-more\"><span>M\u00e1s<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><div class=\"sharing-hidden\"><div class=\"inner\" style=\"display: none;\"><ul><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2005\/03\/un-control-chart-para-visual-c\/?share=email\" target=\"_blank\" title=\"Haz clic para enviar por correo electr\u00f3nico a un amigo\"><span>Correo electr\u00f3nico<\/span><\/a><\/li><li class=\"share-print\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-print sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2005\/03\/un-control-chart-para-visual-c\/\" target=\"_blank\" title=\"Haz clic para imprimir\"><span>Imprimir<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-12\" class=\"share-linkedin sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2005\/03\/un-control-chart-para-visual-c\/?share=linkedin\" target=\"_blank\" title=\"Haz clic para compartir en LinkedIn\"><span>LinkedIn<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div><\/div><\/div>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[10],"tags":[16,14],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1tEO5-c","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts\/12"}],"collection":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/comments?post=12"}],"version-history":[{"count":1,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts\/12\/revisions"}],"predecessor-version":[{"id":184,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts\/12\/revisions\/184"}],"wp:attachment":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/media?parent=12"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/categories?post=12"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/tags?post=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}